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

.
È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top