我正在尝试在网格中加载 session 数据,但没有加载数据我的代码是
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 任何解决方案,谢谢。
最佳答案
我不确定这是否是您的意图,但是当 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?
}
}
关于c# - 在网格中绑定(bind) session 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9408425/