Как создать переменные / свойства на главной странице и позволить подстраницам получать к ним доступ? - PullRequest
1 голос
/ 14 апреля 2010

Как создать переменные / свойства на главной странице и разрешить им доступ к подстраницам?

Так что мой мастер будет иметь строковое свойство HomeUrl

Как любая страница, использующая главную страницу, может получить доступ к этому свойству?

Ответы [ 2 ]

4 голосов
/ 14 апреля 2010

Вы должны использовать базовый класс для вашей главной страницы, который будет определять ваши свойства:

public class BaseMasterPage : System.Web.UI.MasterPage
{
    public string HomeUrl {get; set; }
}

И тогда ваша главная страница должна наследоваться от этого BaseMasterPage класса (как пример):

// real master page
public partial class Common_MasterPages_Backend_Default : BaseMasterPage
{
}

После этого вы можете получить доступ к вашей собственности через Page.Master свойство:

BaseMasterPage baseMaster = (BaseMasterPage)Page.Master;
string homeUrl = baseMaster.HomeUrl;

с любой страницы, которая использует эту главную страницу.

1 голос
/ 14 апреля 2010

Для этого можно использовать наследование.

Допустим, это:

  • Ваш Мастер называется Med_Instrumento.Master
  • Ваш веб-контент называется Med_Instrumento1.aspx

Вы можете создать другую страницу (скажем, Instrumentobase.aspx) и поместить туда все общедоступные / защищенные свойства, которые вам нравятся. Эта страница также должна использовать мастер-страницу.

После этого измените ваш класс Med_Instrumento1.aspx, чтобы он наследовал от этой страницы.

Например: вот код: Веб-страница:

<%@ Page Language="C#" MasterPageFile="~/Med_Instrumentos.Master" AutoEventWireup="true" CodeBehind="Med_Instrumento1.aspx.cs"

код позади:

 public partial class Med_Instrumento1 : InstrumentoBase

Базовый класс:

<%@ Page Language="C#" MasterPageFile="~/Med_Instrumentos.Master" AutoEventWireup="true" CodeBehind="InstrumentoBase.aspx.cs" Inherits="Auscultacion.InstrumentoBase" Title="Untitled Page" %>

код позади:

    public partial class InstrumentoBase : System.Web.UI.Page
    {

    public string INST_Emplazamiento
    {
             get {return "Some Value"  );}
    }
    public TextBox DevolverTextBoxdeMaster(string sNombreTextBox)
          {
             TextBox Texto;
             Texto = (TextBox)Master.FindControl(sNombreTextBox);
             return Texto;
          }
}

В вашем Med_Instrumento1.aspx вы можете использовать свойство INST_Emplazamiento или метод DevolverTextBoxdeMaster.

...