将值从页传递到用户控件

本文关键字:用户 控件 | 更新日期: 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