C# 仅当列值大于0时才在gridview中显示按钮
这个gridview显示了表“productos”的值,当前在所有行中显示一个按钮,但我只需要在库存(ExistenceIAS)高于0的行中显示一个按钮C# 仅当列值大于0时才在gridview中显示按钮,c#,asp.net,C#,Asp.net,这个gridview显示了表“productos”的值,当前在所有行中显示一个按钮,但我只需要在库存(ExistenceIAS)高于0的行中显示一个按钮 <div> <asp:SqlDataSource ID="SqlDataSource1" runat="server"ConnectionString="<%$ ConnectionStrings:bodegahyhConnectionString %>" SelectCommand="SELECT
<div>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"ConnectionString="<%$ ConnectionStrings:bodegahyhConnectionString %>" SelectCommand="SELECT * FROM [Productos]"></asp:SqlDataSource>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="IdProducto" DataSourceID="SqlDataSource1">
<Columns>
<asp:BoundField DataField="IdProducto" HeaderText="IdProducto" InsertVisible="False" ReadOnly="True" SortExpression="IdProducto" />
<asp:BoundField DataField="IdCiudad" HeaderText="IdCiudad" SortExpression="IdCiudad" />
<asp:BoundField DataField="IdTamano" HeaderText="IdTamano" SortExpression="IdTamano" />
<asp:BoundField DataField="IdFragilidad" HeaderText="IdFragilidad" SortExpression="IdFragilidad" />
<asp:BoundField DataField="IdMarca" HeaderText="IdMarca" SortExpression="IdMarca" />
<asp:BoundField DataField="IdUbicacion" HeaderText="IdUbicacion" SortExpression="IdUbicacion" />
<asp:BoundField DataField="IdProveedor" HeaderText="IdProveedor" SortExpression="IdProveedor" />
<asp:BoundField DataField="NomProducto" HeaderText="NomProducto" SortExpression="NomProducto" />
<asp:BoundField DataField="Descripcion" HeaderText="Descripcion" SortExpression="Descripcion" />
<asp:BoundField DataField="Existencias" HeaderText="Existencias" SortExpression="Existencias" />
<asp:BoundField DataField="PrecioVenta" HeaderText="PrecioVenta" SortExpression="PrecioVenta" />
<asp:BoundField DataField="PrecioCompra" HeaderText="PrecioCompra" SortExpression="PrecioCompra" />
<asp:TemplateField>
<ItemTemplate>
<asp:Button id="btn_agregar" runat="server" Text="Agregar" Enabled="true" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<br />
<br />
</div>
按以下所述进行尝试(代码未经测试..)
使用RowDataBound
事件。当数据行(由GridViewRow
对象表示)绑定到GridView控件中的数据时,将引发RowDataBound
事件
首先将onrowdatabound=“CustomerGridView\u RowDataBound
添加到ASPgridview
定义中,如下所示
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="IdProducto" DataSourceID="SqlDataSource1" onrowdatabound="CustomersGridView_RowDataBound">
void CustomersGridView_RowDataBound(Object sender, GridViewRowEventArgs e)
{
if(e.Row.RowType == DataControlRowType.DataRow)
{
//GET THE BUTTON.
Button button1 = (Button)e.Row.FindControl("btn_agregar");
//CHECK CONDITION AND SHOW/HIDE ACCORDINGLY.
if (YOUR CONDITION)
button1.Visible = true;
else
button1..Visible = false;
}
}
通过将列值检查为内联if语句(该语句返回可见性属性的布尔值),可以轻松地完成此操作
<asp:Button id="btn_agregar" runat="server" Visible='<%# Convert.ToInt32(Eval("IdProducto")) > 0 %>' Text="Agregar" />
非常感谢VDWWD,它工作得非常好,这是javascript吗?(我是初学者)不,这是aspnet代码。有关更多信息,请参阅此处