Set CommandField Выберите Visibilty со страницы aspx - PullRequest
1 голос
/ 16 июля 2009

Я хочу сделать что-то подобное с GridView:

<asp:CommandField ShowSelectButton="True" Visible='<%# return Eval("SC_TABLE") %>' />

Но это не работает, появляется ошибка:

Только выражения выражения поддерживается на объектах, которые имеют Событие привязки данных. System.Web.UI.WebControls.CommandField не имеет события DataBinding.

Можно ли в любом случае настроить видимость на странице aspx? PS: SC_TABLE существует из источника данных, поэтому в этой части нет ничего плохого.

Ответы [ 2 ]

3 голосов
/ 16 июля 2009

Вместо этого вы можете сделать это с помощью TemplateField ...

<asp:TemplateField>
    <ItemTemplate>
        <asp:LinkButton runat="server" ID=SelectButton CommandName="SELECT" Visible='<%# Eval("SC_TABLE") %>' Text="Select" />
    </ItemTemplate>
</asp:TemplateField>
1 голос
/ 27 июля 2010

Я нашел ответ в конце этого поста :

По сути, вам нужно захватить событие 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 в первом столбце.

...