我正在加载一组加载到Repeater
控件中的记录。我对每条记录都有一个CheckBox
控件,用于确定该项是否为Active / Inactive。如何在按钮单击事件中循环遍历Repeater
中的所有记录并保存CheckBox
的状态?我需要获取记录的ID和控件的Checked状态。
谢谢!
答案 0 :(得分:17)
有几种方法可以解决它。如果您没有重新绑定PostBack上的数据(例如,您依赖于已经填充的转发器),则需要将记录ID写入将在ViewState中保留的某个字段。在这个例子中,我使用了HiddenField:
void Button_Click(object sender, EventArgs e)
{
foreach(RepeaterItem item in myRepeater.Items)
{
CheckBox cbxIsActive = item.FindControl("cbxID") as CheckBox;
HiddenField hdfID = item.FindControl("recordID") as HiddenField;
if(cbxIsActive != null && hdfID != null)
{
string recordID = hdfID.Value;
bool isActive = cbxIsActive.Checked;
UpdateRecord(recordID, isActive);
}
}
}