在网格中绑定会话数据

时间:2012-02-23 06:52:30

标签: c# asp.net

我正在尝试在网格中加载会话数据但是没有加载数据我的代码是

protected void imageAddExtraField_Click(object sender, ImageClickEventArgs e)
    {
        List<ContentInfo> lstExtraFields = new List<ContentInfo>();
        if (Session["ExtraField"] != null)
        {
            lstExtraFields = Session["ExtraField"] as List<ContentInfo>;
        }
        else
        {
            ContentInfo obj = new ContentInfo();
            obj.ExtraFieldValue = ckEditorExtraField.Text;
            obj.ExtraField = ddlExtraField.SelectedItem.ToString();
            lstExtraFields.Add(obj);
            gdvExtraField.DataSource = lstExtraFields;
            gdvExtraField.DataBind();
            Session["ExtraField"] = lstExtraFields;
        }
    }


我正在使用 VS2008 任何解决方案谢谢。

2 个答案:

答案 0 :(得分:2)

我不确定这是否是你的意图,但是Session["ExtraFiled"]中有什么内容,imageAddExtraField_Click对此无效。如果你想添加更多的对象,你可能需要重构一下代码:

protected void imageAddExtraField_Click(object sender, ImageClickEventArgs e)
    {        
        // check if nothing in the session, on success create a new list
        if (Session["ExtraField"] == null)
        {
            Session["ExtraField"] = new List<ContentInfo>();
        }
        // get a reference to the list in session; previous code ensures is something
        List<ContentInfo> lstExtraFields = (List<ContentInfo>)Session["ExtraField"];
        ContentInfo obj = new ContentInfo();
        obj.ExtraFieldValue = ckEditorExtraField.Text;
        obj.ExtraField = ddlExtraField.SelectedItem.ToString();
        lstExtraFields.Add(obj);

        // bind the grid
        gdvExtraField.DataSource = lstExtraFields;
        gdvExtraField.DataBind();

        // how do you bind when !PostBack?
        }
    }

答案 1 :(得分:0)

  1. 确保ExtraField是List对象。 2.确保gridview已编程为显示数据(自动列生成或手动列生成)。