2016-10-11 53 views
0

我的ASP.NET中有一個gridview。在我的gridview列中,我希望顯示或隱藏每行上的按鈕,如果單元格的值是相同的單元格是空或空。例如,我想要一個按鈕在Signout_Time爲空或空的每一行上顯示。我已經寫下了下面的代碼。我遇到的問題是代碼以相反的方式工作。按鈕顯示在具有「Signout_Time」的行上,而沒有「Signout_Time」可見性值的行上的按鈕變爲false。它不應該如此。我也試圖改變我,如果條件下,它仍然沒有工作基於同一行中單元格的值顯示和隱藏gridview按鈕

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { 

    switch (e.Row.RowType) { 
     case DataControlRowType.DataRow: 
      DataRowView myDataRowView = (DataRowView)e.Row.DataItem; 

      if (String.IsNullOrEmpty(myDataRowView["Signout_Time"].ToString())) { 
       Button status = (Button)e.Row.FindControl("out"); 

       if (status != null) { 
        status.Visible = true; 
       } 
      } 

      break 
    } 
} 

    <Columns> 
         <asp:BoundField HeaderText="S/N" DataField="SN" /> 
         <asp:BoundField HeaderText="First Name" DataField="FirstName" /> 
         <asp:BoundField HeaderText="Address" DataField="Address" /> 
         <asp:BoundField HeaderText="Phone Number" DataField="PhoneNumber" /> 
         <asp:BoundField HeaderText="Sex" DataField="Sex" /> 
         <asp:BoundField HeaderText="Reason" DataField="Reason" /> 
         <asp:BoundField HeaderText="SignIn" DataField="SignIn_Time" /> 
         <asp:BoundField HeaderText="SignOut" DataField="Signout_Time" /> 

         <asp:TemplateField HeaderText="Action" Visible="True"> 
          <ItemTemplate> 
           <asp:Button ID="out" runat="server" Text="Sign out" CommandName="SignOut" CommandArgument='<%#Eval("SN") %>'/> 
          </ItemTemplate> 
         </asp:TemplateField> 
        </Columns> 

      <PagerSettings FirstPageText="First" LastPageText="Last" Mode="NumericFirstLast" PageButtonCount="5" /> 


     </asp:GridView> 

回答

0

您可以在GridView模板直接設置按鈕可見性:

<asp:Button Visible='<%# string.IsNullOrEmpty(Eval("Signout_Time").ToString()) %>' runat="server" Text="Sign out" ID="out" CommandName="SignOut" CommandArgument='<%#Eval("SN") %>'/> 
+0

完美。謝謝 – Mcbaloo

相關問題