0

我正在尝试创建一个带有一些控件、文本框、标签和下拉列表的自定义 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>  
4

1 回答 1

0

不是您正在寻找的答案。只是关于如何通过以下方式实现这一目标的建议UserControls

用户控件标记:

<%@ 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();
}
于 2013-05-27T07:51:09.960 回答