如何从内容页向Master.cs中的函数发送参数
本文关键字:函数 参数 cs Master | 更新日期: 2023-09-27 17:50:52
In Master.cs
:
public string sortOrder
{
get
{
if (ViewState["sortOrder"].ToString() == "Desc")
{
ViewState["sortOrder"] = "Asc";
}
else
{
ViewState["sortOrder"] = "Desc";
}
return ViewState["sortOrder"].ToString();
}
set
{
ViewState["sortOrder"] = value;
}
}
我从内容页调用它:
ViewState["sortOrder"] = "Asc";
PD (e.SortExpression, Master.sortOrder, false);
在执行函数时,我在
这一行得到以下错误if (ViewState["sortOrder"].ToString() == "Desc"):对象引用未设置为对象的实例。
当sortOrder
函数也在内容页中时,它工作得很好。我正试图将所有可重用的代码移动到Master.cs
文件。
如何修改函数,使其工作,因为它是在内容页
母版页和内容页的ViewState不一样。在内容页上,您只修改了内容页的ViewState,因此母版页得到的是空引用。
要在母版页和内容页之间持久化数据,您有几个选项:
- 如果数据需要在回发中持久化,那么要么使用Session,要么通过
((MasterType)Page.Master).sortOrder
在 后面的内容代码上引用主服务器的ViewState。 - 否则,可以使用
Context.Items
对象。
尝试使用这个
public string sortOrder
{
get
{
if (!string.IsNullOrEmpty(Convert.ToString(ViewState["sortOrder"])) && Convert.ToString(ViewState["sortOrder"]) == "Desc")
{
ViewState["sortOrder"] = "Asc";
}
else
{
ViewState["sortOrder"] = "Desc";
}
return Convert.ToString(ViewState["sortOrder"]);
}
set
{
ViewState["sortOrder"] = value;
}
}