用户控制的两个实例一个实例对事件做出反应,另一个实例没有

本文关键字:实例 另一个 一个 控制 两个 用户 事件 | 更新日期: 2023-09-27 17:56:04

我有一个用户控件。用户控制的两个实例一个实例对事件做出反应,另一个实例没有。

一些建议?

用户控制的两个实例一个实例对事件做出反应,另一个实例没有

这是用户控件,

名字:

<asp:TextBox ID="TextBoxFirstName" runat="server"></asp:TextBox> <asp:RequiredFieldValidator ID="RQV1" runat="server" ControlToValidate="TextBoxFirstName" ErrorMessage="*"></asp:RequiredFieldValidator>

姓氏:

<asp:TextBox ID="TextBoxLastName" runat="server"></asp:TextBox> <asp:RequiredFieldValidator ID="RQV2" runat="server" ControlToValidate="TextBoxLastName" ErrorMessage="*"></asp:RequiredFieldValidator>

下面是公开公共属性的页面的代码隐藏,

public string GetFirstName
{
    get { return TextBoxFirstName.Text; }
    set { TextBoxFirstName.Text = value; }
}
public string GetLastName
{
    get { return TextBoxLastName.Text; }
    set { TextBoxLastName.Text = value; }
}

在代码隐藏中,我将创建两个公共字符串变量,将值设置为 TextBox 控件的 Text 属性,并返回 TextBox 控件的 Text 属性。

然后,在主页中,

<form id="form1" runat="server">
<div>This is page to add multiple user controls.</div>
<p>
    Customer1 Details:<br />
    <uc1:WebUserControl1 ID="WebUserControl11" runat="server" />
</p>
<p>
    Customer2 Details:<br />
    <uc1:WebUserControl1 ID="WebUserControl12" runat="server" />           
</p>
<asp:Button ID="Button1" runat="server" Text="Continue" OnClick="GetCustDetails"/>
<asp:Button ID="Button2" runat="server" Text="Clear" CausesValidation="false" OnClick="ClearFields" /><br />
Customer1 FirstName: <asp:label ID="Label1" runat="server"></asp:label><br />
Customer1 LastName: <asp:label ID="Label2" runat="server"></asp:label><br />
Customer2 FirstName: <asp:label ID="Label3" runat="server"></asp:label><br />
Customer2 LastName: <asp:label ID="Label4" runat="server"></asp:label><br />
</form>

我正在向页面添加用户控件的两个实例。然后有四个 Label 控件,它们将在单击 Button1 时显示用户控件的属性。还有另一个 Button2 用于清除所有用户控件的文本框控件。

protected void GetCustDetails(object sender, EventArgs e)
{
    Label1.Text = WebUserControl11.GetFirstName;
    Label2.Text = WebUserControl11.GetLastName;
    Label3.Text = WebUserControl12.GetFirstName;
    Label4.Text = WebUserControl12.GetLastName;
}
protected void ClearFields(object sender, EventArgs e)
{
    WebUserControl11.GetFirstName = string.Empty;
    WebUserControl11.GetLastName = string.Empty;
    WebUserControl12.GetFirstName = string.Empty;
    WebUserControl12.GetLastName = string.Empty;
}