我想在单个ascx页面中使用多个控件,如下拉列表,列表框,单选按钮列表,而不是使用多个ascx页面,并希望在aspx页面中访问它。
答案 0 :(得分:0)
假设您拥有一个带有这些控件的用户控件MyControl.ascx:
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="MyControl.ascx.cs" Inherits="WebApplication1.MyControl" %>
<asp:LinkButton ID="lbtn" runat="server">Link Button</asp:LinkButton>
<asp:RadioButton ID="rbtn" runat="server" Text="Radio Button" />
<asp:DropDownList ID="ddl" runat="server">
<asp:ListItem Text="Dropdown"></asp:ListItem>
</asp:DropDownList>
现在MyControl.ascx.cs页面代码:为每个控件创建公共属性并设置它们
public DropDownList dropdown {get;组; }
public RadioButton radioButton { get; set; }
public LinkButton linkbutton { get; set; }
protected void Page_Load(object sender, EventArgs e)
{
SetCtrlProperties();
}
private void SetCtrlProperties(){
dropdown = ddl;
radioButton = rbtn;
linkbutton = lbtn;
}
现在,如果你将它放在名为default.aspx的页面上,并希望隐藏从.aspx页面点击的按钮上的所有控件,那么.aspx页面代码:
<body>
<form id="form1" runat="server">
<div>
</div>
<uc1:MyControl ID="MyControl1" runat="server" />
<asp:Button ID="Button1" runat="server" Text="Hide" onclick="Button1_Click" />
</form>
</body>
和Default.aspx.cs页面代码:
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
MyControl1.dropdown.Visible = false;
MyControl1.radioButton.Visible = false;
MyControl1.linkbutton.Visible = false;
}
答案 1 :(得分:0)
创建一个名为it的用户控件,并添加您想要显示的所有控件,这些控件在某些页面中很常见。
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="CustomControl.ascx.cs" Inherits="ControlsDemo.CustomControl" %>
<asp:LinkButton ID="lnkBtn" runat="server">Link Button</asp:LinkButton>
<asp:RadioButton ID="radioBtn" runat="server" Text="Radio Button" />
<asp:DropDownList ID="ddl" runat="server"></asp:DropDownList>
现在你必须在你的aspx页面中声明用户控件
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ControlsDemo.aspx.cs" Inherits="ControlsDemo.ControlsDemo"%>
<%@ Register Src="~/CustomControl.ascx" TagName="CControl" TagPrefix="ucCtrl" %>
现在你可以在那个aspx页面的任何地方使用它
<ucCtrl="CControl" runat="server" />