我希望在我的母版页上创建一个公共方法,我可以在每个子页面内调用。 我试图围绕如何做到这一点。
在我的子页面上,我已经使用此方法填充了一个错误消息的面板。
protected void errorMessage (string errorText) {
HtmlGenericControl divTag = new HtmlGenericControl("div");
Panel_Name.Controls.Add(divTag);
divTag.InnerHtml = errorText;
}
现在,如果我要在我的母版页上公开此功能,它将无法识别我的面板,因为它尚未显示。我猜这个答案涉及FindControl
(对不起,我的垃圾代码是英文)
我该怎么做?
答案 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";
完成工作!