将列表框添加到会话

时间:2012-02-23 09:44:11

标签: c# asp.net session listbox

您好我的asp页面中有一个列表框。如何将会话列表项添加到会话以在页面导航之间保留

任何人都可以提供帮助

2 个答案:

答案 0 :(得分:3)

默认情况下,您可以在Session中存储任何类型的对象,因为它存储在内存中。因此,您可以使用它来存储ListBox的ListItemCollection

Session["MyListBoxItems"] = ListBox1.Items.Cast<ListItem>().ToArray();

之后您可以使用AddRange恢复它们:

ListBox1.Items.AddRange((ListItem[])Session[ "MyListBoxItems" ]);

修改:如果您使用的是较旧的框架版本,请使用CopyTo

ListItem[] myListItemArray = new ListItem[ ListBox1.Items.Count ];
ListBox1.Items.CopyTo(myListItemArray, 0);
Session[ "MyListBoxItems" ] = myListItemArray;

答案 1 :(得分:2)

你可以这样做。

    ListBox mylist = new ListBox();
    mylist.Items.Add(new ListItem("Tahir", "Tahir"));
    Session["ITEM"] = mylist;
    foreach (ListItem Item in ((ListBox)(Session["ITEM"])).Items)
    {          
        mylist.Items.Add(new ListItem(Item.Text, Item.Value));
    }

然而,您可能想要检查会话是否实际包含列表框,因为第一次加载页面时会话中没有列表框,您必须在加载页面时存储它然后使用它如你所愿。