您好我的asp页面中有一个列表框。如何将会话列表项添加到会话以在页面导航之间保留
任何人都可以提供帮助
答案 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));
}
然而,您可能想要检查会话是否实际包含列表框,因为第一次加载页面时会话中没有列表框,您必须在加载页面时存储它然后使用它如你所愿。