0

我有一个创建CheckBoxList. 中的项目CheckBoxList是根据用户当前的通知订阅选择的。我正在存储所选项目的真值或假值。

在用户通过选中或取消选中 中的一个框来更改他们的订阅后CheckBoxList,他们单击另一个按钮来更新他们的通知订阅。我需要将Viewstate["PREV"]与回发时更改的选择进行比较,并根据更改运行一些功能。

ArrayList list = new ArrayList();
for (int i = 0; i < checkBoxList1.Items.Count; i++)
{
    list.Add(checkBoxList1.Items[i].Selected.ToString());
}
ViewState["PREV"] = list;

即使我看不到带有 aResponse.Write的值,但当我在调试中添加手表时,ViewState 的值是正确的。

我遇到的问题是如何进行下一步进行比较。这就是我想要完成的:

            for (int i = 0; i < checkBoxList1.Items.Count; i++)
        {
            //if checkbox state goes from false to true, subscribe to topic
               //mySubscribeMethod
            //else if checkbox state goes from true to false, unsubscribe to topic
               //myUnsubscribeMethod
            //else if checkbox state is unchanged, do nothing
        }
4

1 回答 1

0

你可以试试这样的

ArrayList list =  ViewState["PREV"] as ArrayList;
for (int i = 0; i < checkBoxList1.Items.Count; i++)
{
     if (checkBoxList1.Items[i].Selected == true && Convert.ToBoolean(list[i]) == false)
       {
           // Subscribe Method
       }   
     if (checkBoxList1.Items[i].Selected == false && Convert.ToBoolean(list[i]) == true)       
       {
           // Unsubscribe Method
       }
     else
       {
           // Continue to loop
       } 
}
于 2013-01-09T16:41:16.430 回答