使用sessioon将列表框项目从第1页传递到第2页

时间:2015-10-20 13:44:28

标签: c# asp.net session listbox

任何人都可以展示列表框和会话如何工作的示例。 例如,将列表框项从第1页传递到第2页。 THX!

            if (!Page.IsPostBack)
            {
                lstFarger.Items.Add(blo);
                lstFarger.Items.Add(gron);
                lstFarger.Items.Add(brun);
                lstFarger.Items.Add(gul);
            }
        }

        protected void btnLaggTill_Click(object sender, EventArgs e)
        {
            if (!lstLagdaFarger.Items.Contains(lstFarger.SelectedItem) && lstLagdaFarger.Items.Count<3)
            {
                lstLagdaFarger.Items.Add(lstFarger.SelectedItem.Text);

            }
            else
            {
                lblFelMeddelande.Visible = true;
            }
            if (lstLagdaFarger.Items.Count == 3)
            {

                Response.Redirect("WebForm2.aspx");
            }

1 个答案:

答案 0 :(得分:1)

为什么需要传递ListItems,可以在会话中保存数据源。但是,是否真的有必要使用Session,为什么不能再次选择数据?你获得的收益不多,但Session需要服务器内存,也可能包含过时的数据。

话虽如此,如果你真的想用会话来存储列表项......

在按钮单击处理程序中:

if (lstLagdaFarger.Items.Count == 3)
{
    Session["LagdaFargerItems"] = lstLagdaFarger.Items;
    Response.Redirect("WebForm2.aspx");
}
第2页

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack && Session["LagdaFargerItems"] != null)
    { 
        ListItemCollection lic = (ListItemCollection)Session["LagdaFargerItems"];
        foreach(ListItem li in lic)
            lstLagdaFarger.Items.Add(li); // your other ListBox on page2
    }
}