如何保存转发器中加载的项目?

时间:2009-09-28 16:10:58

标签: asp.net repeater

我正在加载一组加载到Repeater控件中的记录。我对每条记录都有一个CheckBox控件,用于确定该项是否为Active / Inactive。如何在按钮单击事件中循环遍历Repeater中的所有记录并保存CheckBox的状态?我需要获取记录的ID和控件的Checked状态。

谢谢!

1 个答案:

答案 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);
        }
    }
}