在公共方法中分配对象

时间:2013-04-09 10:36:07

标签: c# asp.net

我希望在我的母版页上创建一个公共方法,我可以在每个子页面内调用。 我试图围绕如何做到这一点。

在我的子页面上,我已经使用此方法填充了一个错误消息的面板。

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

现在,如果我要在我的母版页上公开此功能,它将无法识别我的面板,因为它尚未显示。我猜这个答案涉及FindControl (对不起,我的垃圾代码是英文)

我该怎么做?

1 个答案:

答案 0 :(得分: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";

完成工作!