Internet Explorer 5.5Internet Explorer 6.0IEWindows 2003Windows 2000Windows XPHTML中级开发Visual StudioWindows.NETASP.NETC#
ListBoxDual 自定义控件






4.38/5 (4投票s)
2005年4月30日
2分钟阅读

95480

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() |
如果要将组件添加到工具箱,只需将组件拖放到设计窗体上即可。 或者您应该写第一行和第五行。(请参阅演示项目。)LeftImageUrl
和 RightImageUrl
必须设置,否则会抛出异常。
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] ...
可以将 DataTable
或 DataSet
绑定到控件。 您可以通过设置控件的 DataTableName
属性来指定 DataSet
中的任何表。 否则,它将选择第一个表。 回发后,组件的 SelectedItem
属性用于在 DataTable
中获取所选的键值对。 通过哈希表获取值似乎更容易,但是 DataTable
或 DataSet
更直观地传递给层级。
关注点
我试图让代码易于理解,但是使用组合控件来实现相同的功能可能会使代码更短且更易于遵循。