65.9K
CodeProject 正在变化。 阅读更多。
Home

ASP.NET 的下拉列表和多选下拉列表控件

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.83/5 (19投票s)

2009年5月6日

CPOL

2分钟阅读

viewsIcon

91306

downloadIcon

4389

支持数据绑定的自定义下拉列表和多选下拉列表控件。

dropdown-screen-0.PNG

描述

本文讨论了两个用 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" />

这是上述代码呈现效果的屏幕截图

dropdown-screen-1.PNG

两个控件都支持以下数据事件

  • ItemDataBound - 在对象已绑定到 Item 后触发。参数传递绑定对象 (DataObject) 和 ListItem
  • NeedDataSource - 当没有指定 DataSourceID 时触发。当您想手动使用您的数据填充控件时,此事件很有用。 有关这方面的详细信息,请参阅提供的源代码,您可以使用 Items 集合或创建自定义列表源(或两者)。

MultiselectDropDown

代码和用法与 DropDown 控件完全相同。 这是以上所有场景的屏幕截图

multidropdown-screen-1.PNG

附加项目中的样式使用默认主题中的 * .skin * 文件。您可以轻松修改这些以满足您的需求。 一切都可以设置样式。

我希望您发现此代码有用。 我向任何想要开始开发自定义控件的人推荐它,因为它实现了非常重要的功能,例如 IPostBackDataHandler 接口,以自定义方式在回发之间传递数据。 它还提供了一些不错的 DataBinding 示例,以及如何使用和修改这些示例来执行特定任务。

历史

  • 2009 年 5 月 6 日:初始发布
© . All rights reserved.