将值从页面传递到用户控件

我将名称和姓氏存储在主页面的两个标签中。 我在类中也有这些值(类没有做太多但是我将它们用于将来的扩展)。 我有一个用户控件,它将发送一个名称和姓氏为正文的电子邮件。

我的问题是如何将标签或类变量值转换为用户控件的body变量?

使用要传递给它的数据的数据类型在用户控件上创建属性,并在创建控件时在页面中填充该属性。

public class myUserControl : Control { ... public int myIntProperty {get; set;} ... } 

稍后在你后面的代码中你可以赋值

 myUserControl cntrl = new myUserControl(); cntrl.myIntProperty = 5; 

而不是这个你可以通过Markup也传递价值

  

您需要在控件上创建属性以保存这些值; 然后从页面代码中,只需将值分配给控件中的属性。

在你的控制下,你可以有类似的东西

 public string FirstName { get { if (ViewState["FirstName"] == null) return string.Empty; return ViewState["FirstName"].ToString(); } set { ViewState["FirstName"] = value; } } 

第1步:您可以将值作为属性公开,然后您可以轻松地使用它。

步骤2:要从用户控件访问您的页面,您可以使用Parent属性,或者可以通过某些客户登录来访问父页面,而不是编写代码来使用属性值。

您需要在控件上定义公共属性,然后在页面上使用控件时,可以将值传递给这些参数。

就像是:

  MyProperty2=<%# label2 %> /> 

你可以在你的用户控件中做这样的事情

 string x=((yourparentcontrol)this.parent).label1.text; 

并使用字符串x