本文介绍了将ASP.NET用户控件的元素公开给父级所有者的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
嗨! 假设我有一个名为LabelHolder的用户控件.其中有一个像这样的标签:
Hi! Let''s say I have a usercontrol called LabelHolder. Within that I have a label like this:
<asp:Label ID="lbCan" runat="server" Text=""></asp:Label>在保存该用户控件的页面(请说Deafult.aspx)中,如何(不使用FindControl方法,因为效率低下)如何从Default.aspx.cs文件中设置标签文本属性 所以我希望我有这样的东西:
In a page that holds that user control (lets say Deafult.aspx) how do I (without using the FindControl method, as it is inefficient) get to set the label text property from the Default.aspx.cs file So what I wish for i something like:
public partial class Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { LabelHolder lH = new LabelHolder(); lH.lbCan.Text = "foo"; //This is what I wish would work but it doesn't form1.Controls.Add(lH); } }非常感谢任何提示! 谢谢
Very greatful for any tips! Thanks
推荐答案您可以将访问器属性添加到LabelHolder控件中,以为您完成此操作. You could add an accessor property to your LabelHolder control to do it for you. public class LabelHolder { .... public string Text { get { return lbCan.Text; } set { lbCan.Text = value; } } }
这样您的代码就变成了
so your code becomes
public partial class Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { LabelHolder lH = new LabelHolder(); lh.Text = "foo"; form1.Controls.Add(lH); } }
在用户控件中创建属性: 公共字符串名称 { 设置{lbCan.Text = value; } 得到{return lbCan.Text; } } 在Default.aspx页中,只需为该属性分配一个值. ucTest.Name ="hasan"; Create a Property in the user control: public string Name { set { lbCan.Text = value; } get { return lbCan.Text; } } In the the Default.aspx page just assign a value to that property. ucTest.Name = "hasan";
更多推荐
将ASP.NET用户控件的元素公开给父级所有者
发布评论