【问题标题】:Getting values from master page to child page in asp.net在 asp.net 中从母版页获取值到子页
【发布时间】:2013-07-18 07:16:32
【问题描述】:

我有一个母版页masterpage.master,其中我将一个值存储在一个变量中

string Name = (string)(Session["myName"]);

现在我想将“名称”中的值用于masterpage.master 的子页面,但不在每个页面上都使用会话。我能做到吗? 如果是..那么请告诉。

我正在使用 c#ASP.net 网络表单

【问题讨论】:

标签: c# asp.net session master-pages


【解决方案1】:

你可以这样试试:

   // Master Page File (Storing the value in label)
    string Name = (string)(Session["myName"]);
    lblmsg.Text= name;

   // cs File
    Label str = Master.FindControl("lblmsg") as Label;
    TextBox10.Text = str.Text ;

【讨论】:

    【解决方案2】:

    您可以将Name 放在一个控件中,即TextBoxMasterPage 上,然后在这样的内容页面中找到它。

    // On Master page
    TextBox mastertxt = (TextBox) Master.FindControl("txtMaster");
    
    // On Content Pages
    lblContent.Text = mastertxt.Text;
    

    有关它的更多详细信息,请访问MSDN

    【讨论】:

      【解决方案3】:

      您可以从当前页面访问您的 masterpage 并将其转换为您的班级类型:

      MyMasterPage master = Master as MyMasterPage;
      var value = master.NeededProperity;
      

      在 cmets 中看起来像 here in MSDN

      公共属性是一种不错的方法,但必须将 MasterType 指令放在每个内容页面(.aspx 文件)中。如果内容页面扩展了一个基类(扩展了 Page),那么同样的强类型可以在基类 CodeBehind 中完成。例如:

          // MySiteMaster : System.Web.UI.MasterPagepublic
      
       string Message
          {
              get
              {
                  return MessageContent.Text;
              }
              set
              {
                  MessageContent.Text = value;
              }
          }
      
          // MyPage : System.Web.UI.Page
          MySiteMaster masterPage = Master as MySiteMaster;
          masterPage.Message = "Message from content page";
      

      MessageContent 是母版页上的控件。 MyPage 类可以将 Message 公开为它自己的属性或允许派生类直接访问它。

      【讨论】:

        【解决方案4】:

        向母版页添加新的只读属性

        public string MyName
        {
            get { return (string)(Session["myName"]); }
        }
        

        在内容页面的页面声明之后添加此代码(相应地更改母版页文件名和路径)

        <%@ MasterType virtualpath="~/Site.master" %>
        

        然后您可以从内容页面访问您的属性

        var MyNameFromMaster = Master.MyName;
        

        【讨论】:

          【解决方案5】:

          在您的 aspx 页面中使用 masterpagetype 指令,如下所示

            <%@ MasterType  virtualPath="~/Site.master"%>
          

          现在您可以使用“Master.[VariableName]”访问母版页的变量

          【讨论】:

            猜你喜欢
            • 2015-06-23
            • 2016-06-20
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-04-28
            • 1970-01-01
            • 2012-08-12
            • 1970-01-01
            相关资源
            最近更新 更多