gpt4 book ai didi

c# - Gridview 中的 TemplateField 中的复选框在回发时丢失检查

转载 作者:可可西里 更新时间:2023-11-01 09:03:41 26 4
gpt4 key购买 nike

我有一个带有模板字段的 GridView 。在该模板字段中有一个复选框。我在 gridview 之外有一个提交按钮来分配已检查的记录。在回发中,没有复选框注册为被选中。这是我的代码:

<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="cb" Checked="false" runat="server" />
<asp:Label ID="lblCFID" runat="server" Visible="false" Text='<%# Eval("ID") %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField HeaderStyle-HorizontalAlign="Center" DataField="Name" HeaderText="Name" />
<asp:BoundField HeaderStyle-HorizontalAlign="Center" DataField="DOB" HeaderText="Date of Birth" />
<asp:BoundField HeaderStyle-HorizontalAlign="Center" HeaderText="Gender" DataField="Gender" />
<asp:BoundField HeaderStyle-HorizontalAlign="Center" HeaderText="Status" DataField="Status" />
<asp:BoundField HeaderStyle-HorizontalAlign="Center" HeaderText="Plan Name" DataField="PlanName" />
<asp:BoundField HeaderStyle-HorizontalAlign="Center" HeaderText="Type" DataField="ControlType" />
<asp:BoundField HeaderStyle-HorizontalAlign="Center" HeaderText="Date of Service" dataformatstring="{0:MMMM d, yyyy}" htmlencode="false" DataField="DateofService" />
</Columns>

protected void AssignRecords(object sender, EventArgs e)
{
int Rows = gvASH.Rows.Count;
for (int i = 0; i < Rows; i++)
{
//CheckBoxField cb = ((CheckBoxField)gvASH.Rows[i].Cells[1]).;
CheckBox cb = (CheckBox)gvASH.Rows[i].Cells[0].FindControl("cb");
Label lblID = (Label)gvASH.Rows[i].Cells[0].FindControl("lblCFID");
if (cb.Checked == true)
{

string ID = lblID.Text;
//Assign Code
}
}
}

我在字符串 ID = lblID.Text 上设置了一个断点;但它从未找到任何已检查的内容。

最佳答案

我认为你缺少的是,当你点击按钮并且你的页面被回发时,你重新绑定(bind)到 gridview,你需要在这种情况下绑定(bind)

 if (!Page.IsPostBack)
{
GridView1.DataSourceID = "yourDatasourceID";
GridView1.DataBind();
}

关于c# - Gridview 中的 TemplateField 中的复选框在回发时丢失检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1575445/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com