Установить CommandField Выберите видимость на странице aspx

StackOverflow https://stackoverflow.com/questions/1138176

  •  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 в первом столбце.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top