2

我希望在我的母版页上创建一个公共方法,我可以从每个子页面中调用它。我正在努力思考应该如何做到这一点。

在我的子页面上,我使用这种方法来填充一个错误消息的面板。

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

现在,如果我要在我的母版页上公开此功能,它不会识别我的面板,因为它还没有显示。我猜答案涉及FindControl (对不起我的垃圾代码英语)

我该怎么做?

4

1 回答 1

2

公平地说,对于您的方案,我会在您的页面 (.aspx) 上使用 UserControl (.ascx)。

然后,在 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";

任务完成!

于 2013-04-09T10:43:59.113 回答