Установить CommandField Выберите видимость на странице aspx
-
16-09-2019 - |
Вопрос
Я хочу сделать что-то подобное с GridView:
<asp:CommandField ShowSelectButton="True" Visible='<%# return Eval("SC_TABLE") %>' />
Но это не работает, возникает ошибка:
Выражения базы данных поддерживаются только на объектах, которые имеют событие DataBinding.System.web.ui.webcontrols.commandfield не имеет события данных.
Могу ли я как-нибудь установить видимость со страницы aspx?ПС:SC_TABLE существует из источника данных, поэтому в этой части нет ничего плохого.
Решение
Вместо этого вы можете сделать это с помощью 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();
}
}
Это работает, если у вас есть CommandField в первом столбце.