فراخوانی متد Code Behind (تابع) توسط #C در ASP.Net

پنجشنبه 7 آبان 1394

در این مقاله قصد داریم با یک مثال نشان دهیم که چگونه می توان متد یا تابع Code Behind را در صفحات ASPX در کنترل های ASP.Net مانند GridView ، DetailsView، DataList ، Repeater و... با استفاده از #C صدا زد.

فراخوانی متد Code Behind (تابع) توسط #C در ASP.Net

 در این مقاله قصد داریم با یک مثال نشان دهیم که چگونه می توان متد یا تابع Code Behind را در صفحات ASPX در کنترل های ASP.Net مانند GridView ، DetailsView، DataList ، Repeater و... با استفاده از C# صدا زد.

صفحه HTML شامل یک کنترل GridView  است که دو ستون BoundField  و یک ستون TemplateField با استفاده از تابع Eval دارد.  مقدار تابع EVAL  به متد Code Bheind   به طور مثال به GetStatusString فرستاده می شود.  

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false">

    <Columns>

        <asp:BoundField DataField="Id" HeaderText="Id" ItemStyle-Width="50" />

        <asp:BoundField DataField="Name" HeaderText="Name" ItemStyle-Width="150" />

        <asp:TemplateField HeaderText="Status" ItemStyle-Width="100">

            <ItemTemplate>

                <asp:Label Text='<%# GetStatusString(Eval("Status").ToString())%>'

                    runat="server" />

            </ItemTemplate>

        </asp:TemplateField>

    </Columns>

</asp:GridView>

در زبان C# برای استفاده از این قابلیت فضای نام زیر را اضافه میکنیم.

using System.Data;

در اینجا در GridView یک DataTable با بعضی داده های ساختگی درون رویداد pageLoad ایجاد شده است.

متد GetStatusString مقادیر را از تابع Eval به عنوان String قبول میکند و بعد از مقایسه مقدار رشته مناسب را برمی گرداند. کدها در  PageLoad به صورت زیر خواهد بود .

protected void Page_Load(object sender, EventArgs e)

{

    if (!this.IsPostBack)

    {

        DataTable dt = new DataTable();

        dt.Columns.AddRange(new DataColumn[3] { new DataColumn("Id"), new DataColumn("Name"), new DataColumn("Status") });

        dt.Rows.Add(1, "John Hammond", "A");

        dt.Rows.Add(2, "Mudassar Khan", "P");

        dt.Rows.Add(3, "Suzanne Mathews", "P");

        dt.Rows.Add(4, "Robert Schidner", "A");

        GridView1.DataSource = dt;

        GridView1.DataBind();

    }

}


protected string GetStatusString(string status)

{

    return status == "A" ? "Absent" : "Present";

}
فایل های ضمیمه

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید