Set CommandField Selecione Visibilidade na página aspx
-
16-09-2019 - |
Pergunta
Eu quero fazer algo assim com um GridView:
<asp:CommandField ShowSelectButton="True" Visible='<%# return Eval("SC_TABLE") %>' />
Mas que não funciona, chegando com erro:
expressões DataBinding são apenas suportado em objetos que têm uma DataBinding evento. System.Web.UI.WebControls.CommandField não tem um evento DataBinding.
Existe uma maneira eu posso definir a visibilidade da página aspx? PS:. SC_TABLE existe desde a fonte de dados, por isso nada de errado daquela parte
Solução
Você pode fazer isso com um TemplateField em vez ...
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton runat="server" ID=SelectButton CommandName="SELECT" Visible='<%# Eval("SC_TABLE") %>' Text="Select" />
</ItemTemplate>
</asp:TemplateField>
Outras dicas
Eu encontrei a resposta no final do este post :
Basicamente, você precisa para capturar o evento RowCreated na DataGrid
OnRowCreated = "GridView1_RowCreated"
Em seguida, no uso página aspx.cs o seguinte código para esconder controles:
protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowIndex == 1)
{
e.Row.Cells[0].Controls.Clear();
}
}
Ele funciona se você tiver um CommandField na primeira coluna.