Establecer CommandField Seleccione Visibilidad de la página aspx
-
16-09-2019 - |
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
.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.