Pregunta

Quiero hacer algo como esto con un GridView:

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

Pero eso no funciona, que viene con el error:

  

Las expresiones de enlace de datos sólo están   apoyado en objetos que tienen una   evento DataBinding.   System.Web.UI.WebControls.CommandField   no tiene un evento DataBinding.

¿Hay alguna forma de establecer la visibilidad de la página aspx? PD: SC_TABLE existe desde el origen de datos, por lo que nada malo de esa parte

.
¿Fue útil?

Solución

Se puede hacer esto con un TemplateField lugar ...

<asp:TemplateField>
    <ItemTemplate>
        <asp:LinkButton runat="server" ID=SelectButton CommandName="SELECT" Visible='<%# Eval("SC_TABLE") %>' Text="Select" />
    </ItemTemplate>
</asp:TemplateField>

Otros consejos

he encontrado la respuesta al final de este post :

Básicamente, lo que necesita para capturar el evento RowCreated en la cuadrícula de datos

OnRowCreated = "GridView1_RowCreated"

A continuación, en la página aspx.cs utilizar el código siguiente para ocultar los controles:

protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowIndex == 1)
    {
        e.Row.Cells[0].Controls.Clear();
    } 
}

funciona si tiene un CommandField en la primera columna.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top