繁体   English   中英

如何从内容页面将参数发送到Master.cs中的函数

[英]How to send parameter to a function in Master.cs from a content page

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;
      }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM