C# 将用户控件类传递到主机页
如何将用户控件属性传递给页面,并使这些属性可用于页面上的所有方法(而不仅仅是在控件操作中激发的一个方法,例如onControlClick) 我有一个基本上3页的设置:C# 将用户控件类传递到主机页,c#,asp.net,user-controls,C#,Asp.net,User Controls,如何将用户控件属性传递给页面,并使这些属性可用于页面上的所有方法(而不仅仅是在控件操作中激发的一个方法,例如onControlClick) 我有一个基本上3页的设置: 用户控制(ascx/cs) 类(cs)-包含用户控件属性的 主机页(aspx/cs)-引用用户控件 用户控件由3个相互关联的下拉列表组成。我已经成功地通过一个事件将这些下拉值通过一个类传递到页面上,当用户单击下拉菜单时会触发该事件。因此,通过这种方式,主机页可以持续地感知用户控件中的值。但是,我希望页面在其所有方法上使用控件的
- 用户控制(ascx/cs)
- 类(cs)-包含用户控件属性的
- 主机页(aspx/cs)-引用用户控件
<linked:LinkMenu2 id="Menu1" runat="server" OnLinkClicked="LinkClicked" />
主机页(aspx)
类别:
public class ddtestEventArgs : EventArgs
{
// Link
private string link;
public string Link
{
get { return link; }
set { link = value; }
}
public ddtestEventArgs(string link)
{
Link = link;
}
}
public delegate void ddtestEventHandler(object sender, ddtestEventArgs e);
希望这就是你想要的。最好的方法是从用户控件中将控件公开为公共属性。因此,在用户控件中,为每个下拉列表添加一个属性:
public DropDownList DropDown1
{
get { return dropDownList1; }
}
public DropDownList DropDown2
{
get { return dropDownList2; }
}
您可以对要在主机页上访问的任何其他属性执行相同的操作:
public string DropDown1SelectedValue
{
get { return dropDownList1.SelectedValue; }
set { dropDownList1.SelectedValue = value; }
}
然后,您可以从主机页通过用户控件访问属性:
string value = UserControl1.DropDown1SelectedValue;
或
以下是我认为(如果我理解正确的话)您可能会觉得有用的几个其他已回答问题这就是您正在做的:
public DropDownList DropDown1
{
get { return dropDownList1; }
}
public DropDownList DropDown2
{
get { return dropDownList2; }
}
public string DropDown1SelectedValue
{
get { return dropDownList1.SelectedValue; }
set { dropDownList1.SelectedValue = value; }
}
string value = UserControl1.DropDown1SelectedValue;
string value = UserControl1.DropDownList1.SelectedValue;