2017-04-30 37 views
0

此gridview显示表“productos”的值当前正在所有行中显示一个按钮,但我只需要显示一个按钮, Existencias)高于0只有当列值高于0时才显示gridview中的按钮

<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> 

回答

0

通过将列值检查为内联if语句,该语句为Visibility属性返回一个布尔值,您可以轻松完成此操作。

<asp:Button id="btn_agregar" runat="server" Visible='<%# Convert.ToInt32(Eval("IdProducto")) > 0 %>' Text="Agregar" /> 
+0

非常感谢你VDWWD它工作完美,<%# %>之间的东西,是JavaScript? (我是初学者) –

+0

不,这是aspnet代码。在这里看到更多的信息http://stackoverflow.com/questions/5833278/meaning-of-the-various-symbols-in-aspx-page-of-aspnet – VDWWD

0

尝试以下作为所述(代码没有进行测试。)

使用RowDataBound事件。当数据行(由GridViewRow对象表示)绑定到GridView控件中的数据时,引发RowDataBound事件。

首先将onrowdatabound="CustomersGridView_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; 

    } 
} 
相关问题