簡體   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