Impostare CommandField Selezionare Visibilità dalla pagina aspx
-
16-09-2019 - |
Domanda
Io voglio fare qualcosa di simile con un GridView:
<asp:CommandField ShowSelectButton="True" Visible='<%# return Eval("SC_TABLE") %>' />
Ma questo non funziona, fino a venire con l'errore:
espressioni Databinding sono solo supportato su oggetti che hanno una evento DataBinding. System.Web.UI.WebControls.CommandField non ha un evento DataBinding.
C'è qualche cosa che posso impostare la visibilità dalla pagina aspx? PS: SC_TABLE esiste dall'origine dati, quindi nulla di male da quella parte
.Soluzione
Si potrebbe fare questo con un TemplateField invece ...
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton runat="server" ID=SelectButton CommandName="SELECT" Visible='<%# Eval("SC_TABLE") %>' Text="Select" />
</ItemTemplate>
</asp:TemplateField>
Altri suggerimenti
Ho trovato la risposta alla fine del questo post :
In sostanza, è necessario acquisire l'evento RowCreated sul DataGrid
OnRowCreated = "GridView1_RowCreated"
Poi, nella pagina aspx.cs utilizzare il seguente codice per nascondere i controlli:
protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowIndex == 1)
{
e.Row.Cells[0].Controls.Clear();
}
}
E 'funziona se si dispone di un CommandField nella prima colonna.