【发布时间】:2010-12-07 05:19:37
【问题描述】:
我有一个带有模板字段的网格视图。在该模板字段中是一个复选框。我在 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 上设置了断点;但它永远不会找到任何已检查的内容。
【问题讨论】:
-
我正在使用 C#,但这个来自 VB.Net 中的 asp.net 网站的示例基本上正在做我正在做的事情:asp.net/Learn/data-access/tutorial-52-vb.aspx 所以我知道这是可能的,我只是不这样做不知道为什么它对我不起作用。
-
页面生命周期何时是您分配的方法被调用?
-
在此处查看解决方案,您需要保留选择复选框highoncoding.com/Articles/…
标签: c# asp.net gridview checkbox postback