XHTML.NET 1.0WebForms.NET 1.1.NET 3.0Architect.NET 2.0CSS.NET 3.5AjaxC# 3.0HTMLIntermediateDev.NETASP.NETC#
ASP.NET 的下拉列表和多选下拉列表控件






4.83/5 (19投票s)
支持数据绑定的自定义下拉列表和多选下拉列表控件。

描述
本文讨论了两个用 ASP.NET 编写的用户控件。最近在一个项目中,我需要开发一个带有复选框形式的多选选项的自定义DropDown
控件。我搜索了一些简单但有用的东西来满足我的需求,但没有找到任何东西,所以我开发了自己的控件。后来,我重用了代码来创建一个常规的DropDown
控件(没有多选checkbox
选项)。这两个控件可以合并成一个,但我可能会在以后的阶段这样做。 接下来是控件。
DropDown
除了可以从 asp 填充的常规 Items
集合之外,此控件还可以绑定到 IListSource
以获取要填充的数据。以下是一些如何在 ASPX 中使用此控件的示例。
<%@ Register Src="Controls/DropDown.ascx" TagName="DropDown" TagPrefix="thp" %>
<thp:DropDown ID="DropDown1" runat="server" Width="200">
<Items>
<asp:ListItem Text="Some text" Value="0" Selected="True" />
<asp:ListItem Text="Another option" Value="1" />
</Items>
</thp:DropDown>
<thp:DropDown ID="DropDown2" runat="server" Width="200" DataSourceID="DataSource1"
DataTextField="Name" DataValueField="Id" />
<thp:DropDown ID="DropDown3" runat="server" Width="200"
OnNeedDataSource="DropDown3_NeedDataSource"
DataTextField="Name" DataValueField="Id" OnClientChange="onDropDownChange" />
这是上述代码呈现效果的屏幕截图
两个控件都支持以下数据事件
ItemDataBound
- 在对象已绑定到Item
后触发。参数传递绑定对象 (DataObject
) 和ListItem
。NeedDataSource
- 当没有指定DataSourceID
时触发。当您想手动使用您的数据填充控件时,此事件很有用。 有关这方面的详细信息,请参阅提供的源代码,您可以使用Items
集合或创建自定义列表源(或两者)。
MultiselectDropDown
代码和用法与 DropDown
控件完全相同。 这是以上所有场景的屏幕截图

附加项目中的样式使用默认主题中的 * .skin * 文件。您可以轻松修改这些以满足您的需求。 一切都可以设置样式。
我希望您发现此代码有用。 我向任何想要开始开发自定义控件的人推荐它,因为它实现了非常重要的功能,例如 IPostBackDataHandler
接口,以自定义方式在回发之间传递数据。 它还提供了一些不错的 DataBinding
示例,以及如何使用和修改这些示例来执行特定任务。
历史
- 2009 年 5 月 6 日:初始发布