تعيين commandfield حدد visibilty من صفحة ASPX
-
16-09-2019 - |
سؤال
أريد أن أفعل شيئا مثل هذا مع GridView:
<asp:CommandField ShowSelectButton="True" Visible='<%# return Eval("SC_TABLE") %>' />
ولكن هذا لا يعمل، والخروج مع الخطأ:
يتم دعم تعبيرات البيانات فقط على الكائنات التي لها حدث تعديل البيانات. System.Web.ui.webcontrols.comMandfield لا يحتوي على حدث Databinding.
هل هناك على أي حال يمكنني تعيين الرؤية من صفحة ASPX؟ ملاحظة: SC_TABLE موجود من DataSource، لذلك لا شيء خاطئ من هذا الجزء.
المحلول
يمكنك القيام بذلك مع templatefield بدلا من ذلك ...
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton runat="server" ID=SelectButton CommandName="SELECT" Visible='<%# Eval("SC_TABLE") %>' Text="Select" />
</ItemTemplate>
</asp:TemplateField>
نصائح أخرى
لقد وجدت الجواب في نهاية هذا المشنور:
أساسا، تحتاج إلى التقاط حدث RowCreated على DataGrid
OnRowCreated = "gridview1_rowcreated"
بعد ذلك، في صفحة ASPX.cs استخدم التعليمات البرمجية التالية لإخفاء عناصر التحكم:
protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowIndex == 1)
{
e.Row.Cells[0].Controls.Clear();
}
}
يعمل إذا كان لديك كومانديفيلد في العمود الأول.
لا تنتمي إلى StackOverflow