2017-04-30 79 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; 

    } 
} 
相關問題