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

ListBoxDual 自定义控件

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.38/5 (4投票s)

2005年4月30日

2分钟阅读

viewsIcon

95480

downloadIcon

1190

使用易于使用的自定义组件可以大大缩短 Web 项目的实现时间。

引言

ASP.NET 组件被广泛用于大多数 Web 项目。但是,通常情况下,为了提供更好的用户界面和对项目更好的控制,所需的解决方案需要更强大且易于使用的组件。

在一个项目中,团队需要从一个 ListBox 控件收集用户信息,并将其写入另一个控件以显示给用户。他们注意到这个需求会被重复多次,因此创建了 ListBoxDual 自定义组件。 虽然不创建组件也能实现,但那样会耗费大量时间,并且开发人员会失去对问题的关注。

背景

为了在代码后置中处理 ListBox 内容(其中项目在客户端动态插入),您应该在提交表单之前使用客户端脚本选择插入的项目。 然后,您可以使用 Page.Request 方法以逗号分隔的字符串获取信息。

使用代码

组件类图如下所示

ListBoxDual
+Size: Int32
+Width: Int32
+RightImageUrl: string
+LeftImageUrl: string
+DataSource: object
+DataTableName: string
+DataValueField: string
+DataTextFied: string
+SelectedItems: DataTable
+DataBind()

如果要将组件添加到工具箱,只需将组件拖放到设计窗体上即可。 或者您应该写第一行和第五行。(请参阅演示项目。)LeftImageUrlRightImageUrl 必须设置,否则会抛出异常。

1] <%@Register TagPrefix="gm" namespace="gmtl.web.ui" assembly="gmtl.web.ui"%>
2] ...
3]<form id="Form1" method="post" runat="server">
4] ...
5] <gm:listboxdual id="BizListBoxDual1" runat="server" 
LeftImageUrl="picture\ToLeft.gif" RigthImageUrl="picture\ToRight.gif">
6] </form>
7] ...

可以将 DataTableDataSet 绑定到控件。 您可以通过设置控件的 DataTableName 属性来指定 DataSet 中的任何表。 否则,它将选择第一个表。 回发后,组件的 SelectedItem 属性用于在 DataTable 中获取所选的键值对。 通过哈希表获取值似乎更容易,但是 DataTableDataSet 更直观地传递给层级。

关注点

我试图让代码易于理解,但是使用组合控件来实现相同的功能可能会使代码更短且更易于遵循。

© . All rights reserved.