如何在OnClick事件上改变gridview模板字段的可见性

本文关键字:字段 可见性 gridview 改变 OnClick 事件 | 更新日期: 2023-09-27 18:04:08

如何改变OnClick事件中gridview模板字段的可见性

 <gaia:Button ID="btnAdd" runat="server" Text="Add Sub Franchise" OnClick="btnAdd_Click"   Visible="true" CssClass="b2" />
 <gaia:Button ID="btnBulk" runat="server" Text="Bulk Assignment"
               CssClass="b2" onclick="btnBulkAssign_Click" />
 <gaia:Button ID="btnBulkSubmit" Visible="false" runat="server" 
   Text="Bulk Submit" CssClass="b2" onclick="btnBulkSubmit_Click" />
<asp:GridView ID="grdFranchise" runat="server" AllowSorting="True" AutoGenerateColumns="False"
 >
<Columns>
<asp:TemplateField HeaderText="Payments">
      <ItemTemplate>
           <asp:Label runat="server" ID="checkMyPaymentStatus" Visible="<%# Paymentflag %>"  Text='<%#GetTotal("lblDeposit")%>' ForeColor='Green' />
           <asp:Label runat="server" ID="lblNetPayments" Text='<%#String.Format("{0:f2}",(decimal)Eval("Payments"))%>'/>
           <asp:TextBox ID="txtMypayment" runat="server" Visible="<%# Paymentflag %>" Text='<%#String.Format("{0:f2}",(decimal)Eval("Payments"))%>'/>                  </ItemTemplate>                                 </asp:TemplateField>
</Columns>
</grdFranchies>

我想当gridview加载时,lblNetPayments是可见的。当用户单击批量分配时,lblNetPayments标签可见性为假或checkMyPaymentStatus可见性为真,txtMyPayment可见性为真。

并且当用户点击批量提交时,上面的内容是相反的

如何在OnClick事件上改变gridview模板字段的可见性

btnBulkAssign_Click事件上隐藏lblNetPaymentstxtMyPayment并显示checkMyPaymentStatus:

protected void btnBulkAssign_Click(object sender, EventArgs e)
{
  for (int i = 0, i < grdFranchise.Rows.Count, i++)
  {
     Label lblNetPayments = (Label)grdFranchise.Rows[i].FindControl("lblNetPayments");
     Label checkMyPaymentStatus = (Label)grdFranchise.Rows[i].FindControl("checkMyPaymentStatus ");
     TextBox txtMypayment = (TextBox)grdFranchise.Rows[i].FindControl("txtMypayment");
     lblNetPayments.Visible = false;
     checkMyPaymentStatus.Visible = true;
     txtMypayment.Visible = true;
  }
}

只要在btnBulkSubmit_Click上调用grdFranchise.DataBind();即可。