Background :我的代码问题如下 . 在第一次单击按钮时,复选框不会获得选中的复选框,但在第二次单击时,只需获取所有选中的复选框 .
这是代码:
ASPX
This button execute the process..
<asp:LinkButton ID="lbDeletePerman" runat="server" OnClick="lbDeletePerman_Click">Yes</asp:LinkButton>
<code><asp:UpdatePanel ID="GVUpdatePanel" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:GridView CssClass="da-table" ID="Gv_A" runat="server" DataKeyNames="ID,PatientName" AutoGenerateColumns="false" OnRowCommand="Gv_Appoint_RowCommand">
<Columns>
<asp:TemplateField HeaderStyle-Font-Bold="true" HeaderText="Select">
<ItemTemplate>
<asp:CheckBox ID="CbE" runat="server" />
<asp:HiddenField ID="hID" Value='<%# Eval("IDENTIFICATION") %>' runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField=""Date" HeaderText="Date" HeaderStyle-Font-Bold="true" HeaderStyle-VerticalAlign="Middle" ItemStyle-VerticalAlign="Middle" />
<asp:BoundField DataField="Cat" HeaderText="Type" HeaderStyle-Font-Bold="true" HeaderStyle-VerticalAlign="Middle" ItemStyle-VerticalAlign="Middle" />
<asp:BoundField DataField="Deleted" HeaderText="Deleted" HeaderStyle-Font-Bold="true" HeaderStyle-VerticalAlign="Middle" ItemStyle-VerticalAlign="Middle" />
</Columns>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
C#:
protected void lbDeletePerman_Click(object sender, EventArgs e)
{
try
{
foreach (GridViewRow rowItem in Gv_Appoint.Rows)
{
CheckBox CboxElim = (CheckBox)(rowItem.Cells[0].FindControl("CbE"));
if (CboxElim.Checked)
{
LBLT.Text = "Hello"; // NO ENTERING HERE
}
}
GVUpdatePanel.Update();
} catch (Exception er){}
}
任何帮助,将不胜感激
1 回答
lbDeletePerman 需要与 Gv_A 一起位于UpdatePanel内 .
或者使用AsyncPostBackTrigger