带有下拉列表的Web自定义控件

时间:2013-05-27 07:00:38

标签: c# asp.net drop-down-menu custom-controls

我正在尝试创建一个带有一些控件的自定义Web控件,一个文本框,标签和下拉列表,我想要做的是在自定义控件上添加一个属性以允许在下拉列表中添加选择选项,就像你只是一个正常的下拉列表那样的方式,即

<asp:DropDownList ID="normalddl" runat="server">
     <asp:ListItem Text="1st value" Value="0"></asp:ListItem>
     <asp:ListItem Text="2nd value" Value="1"></asp:ListItem>
</asp:DropDownList>

我想要一个看起来像这样的自定义控件(这是一个简化版本)

<mycustomControl:ControlNamt ID="customddl" runat="server" >
   <asp:ListItem Text="1st value" Value="0"></asp:ListItem> -- how would I go about adding this in the custom control?
    <asp:ListItem Text="2nd value" Value="1"></asp:ListItem>
</mycustomControl:ControlNamt>  

1 个答案:

答案 0 :(得分:0)

不是您正在寻找的答案。只是建议如何通过UserControls

实现这一目标

UserControl标记:

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="UC1.ascx.cs" Inherits="WebFormsScratch.UCTests.UC1" %>

<%-- Other controls here --%>
<asp:DropDownList runat="server" ID="ddl">
</asp:DropDownList>

UserControl代码隐藏:

public partial class UC1 : System.Web.UI.UserControl
{
    public IEnumerable<ListItem> DDLData;

    protected void Page_Load(object sender, EventArgs e)
    {
    }
    public override void DataBind()
    {
        ddl.DataSource = DDLData;
        ddl.DataBind();
        base.DataBind();
    }
}

使用该控件的aspx页面(标记;最低限度)

<%@ Register Src="~/UCTests/UC1.ascx" TagPrefix="uc1" TagName="UC1" %>
...
...
<uc1:UC1 runat="server" ID="uc1" />

使用该控件的aspx页面代码

protected void Page_Load(object sender, EventArgs e)
{
    uc1.DDLData = new []
        {
            new ListItem("1st Item", "0"),
            new ListItem("2nd Item", "1"),
            new ListItem("3rd Item", "2"),
        };
    uc1.DataBind();
}