2013-04-09 2 views
2

Я хочу создать публичный метод на моей главной странице, который я могу вызвать изнутри каждой подстраницы. Я пытаюсь оборачивать голову, как это должно быть сделано.Назначение объектов в рамках общедоступного метода

В моих подстраницах я сделал этот метод, чтобы заполнить панель с ошибкой.

protected void errorMessage (string errorText) { 
    HtmlGenericControl divTag = new HtmlGenericControl("div"); 
    Panel_Name.Controls.Add(divTag); 
    divTag.InnerHtml = errorText; 
} 

Теперь, если бы я, чтобы сделать эту функцию общественности на моем MasterPage, он не узнает мою панель, как это было показано нету еще. Я предполагаю, что ответ включает FindControl (Извините за мой код мусора русский)

Как мне это сделать?

+0

Значит, вы хотите показать сообщение об ошибке на некоторых страницах вашего владельца на главной странице? Почему бы вам не использовать «Label» на «MasterPage»? Что делать, если кто-то добавляет страницу, использующую этот мастер, но забывает добавить свою волшебную панель ошибок? –

+0

Я хочу вывести эту ошибку в разных местах моих страниц контента. – GentlemenFinn

ответ

2

Чтобы быть справедливым, для вашего сценария я использовал бы UserControl (.ascx) на ваших страницах (.aspx).

Затем в UserControl, есть ваше сообщение об ошибке разметки, такие как:

Код фронта (ErrorMessage.ascx)

<asp:Panel runat="server" ID="PanelErrorMessage" /> // creates a <div> 

код позади (ErrorMessage.ascx.cs)

public string ErrorMessage 
{ 
    get {} 
    set 
    { 
     PanelErrorMessage.Text = value; // sets the panel text (<div>text</div>) to value when property is set 
    } 
} 

Используйте UserControl на своей странице (вам необходимо определить это как тег управления на Ваша страница тоже с приставкой/суффиксом):

<myControls:ErrorMessage runat="server" ID="MyErrorControl" /> 

Вы также можете сделать это во многих местах на вашей странице, если вам требуется различные ошибки.

Затем, когда у вас есть ошибки, вы будете просто сделать:

MyErrorControl.ErrorMessage = "This is my error message"; 

Работа сделано!

+0

Спасибо, сэр! Это похоже на подходящее решение моей проблемы. – GentlemenFinn

+0

Не проблема :) –