我希望在我的母版页上创建一个公共(public)方法,我可以从每个子页面中调用该方法。 我正在努力思考应该如何完成这件事。
在我的子页面上,我使用了此方法来用错误消息填充面板。
protected void errorMessage (string errorText) {
HtmlGenericControl divTag = new HtmlGenericControl("div");
Panel_Name.Controls.Add(divTag);
divTag.InnerHtml = errorText;
}
现在,如果我要在我的主页上公开此功能,它不会识别我的面板,因为它尚未显示。我猜答案涉及 FindControl
(抱歉我的垃圾英语代码)
我应该怎么做?
最佳答案
公平地说,对于您的情况,我会在您的页面 (.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";
工作完成!
关于c# - 在公共(public)方法中分配对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15899634/