فراخوانی متد Code Behind (تابع) توسط #C در ASP.Net
پنجشنبه 7 آبان 1394در این مقاله قصد داریم با یک مثال نشان دهیم که چگونه می توان متد یا تابع Code Behind را در صفحات ASPX در کنترل های ASP.Net مانند GridView ، DetailsView، DataList ، Repeater و... با استفاده از #C صدا زد.
در این مقاله قصد داریم با یک مثال نشان دهیم که چگونه می توان متد یا تابع 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"; }
- ASP.net
- 3k بازدید
- 2 تشکر