将值从页传递到用户控件
本文关键字:用户 控件 | 更新日期: 2023-09-27 18:14:45
我在主页的两个标签中存储姓名和姓氏。我也有这些值在一个类(类不做太多,但我使用它们为未来的扩展)。我有一个用户控件,将发送以姓名和姓氏作为正文的电子邮件。
我的问题是,我怎么能转移标签或类变量值到用户控制的主体变量?
在用户控件上创建一个属性,其中包含要传递给它的数据的数据类型,并在创建控件时将其填充到页面中。
public class myUserControl : Control
{
...
public int myIntProperty {get; set;}
...
}
在后面的代码中,你可以赋值为
myUserControl cntrl = new myUserControl();
cntrl.myIntProperty = 5;
你也可以像
一样通过标记传递值<uc1:myUserControl ID="uc1" runat="server" myIntProperty="5" />
你需要在控件上创建属性来保存这些值;然后从页面代码中,简单地将值分配给控件中的属性。
在你的控件上,你可以有像
这样的东西public string FirstName
{
get {
if (ViewState["FirstName"] == null)
return string.Empty;
return ViewState["FirstName"].ToString();
}
set {
ViewState["FirstName"] = value;
}
}
您需要在控件上定义公共属性,然后当您在页面上使用控件时,您可以将值传递给这些参数。
类似:
<cc:mycustomControl runat="server"
MyProperty1=<%# label1 %>
MyProperty2=<%# label2 %>
/>
第一步:你可以把这些值作为属性,这样你就可以很容易地使用它了。
步骤2:要从用户控件访问您的页面,您可以使用Parent
属性或可能是一些自定义登录来访问父页面,然后编写代码来使用属性值
你可以在你的用户控件
中这样做string x=((yourparentcontrol)this.parent).label1.text;
并使用字符串x