C# 仅当列值大于0时才在gridview中显示按钮

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

这个gridview显示了表“productos”的值,当前在所有行中显示一个按钮,但我只需要在库存(ExistenceIAS)高于0的行中显示一个按钮

<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
添加到ASP
gridview
定义中,如下所示

<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代码。有关更多信息,请参阅此处