ASP.NET 2.0:如何让DropDownList同时拥有数据来源项目与自订项目

图表1

 

其实在许多时候,我们会希望网页上的DropDownList控件同时拥有数据来源项目与自订项目。这样说如果您还不是很明白,请看图表1所示的网页范例。我们发现,第一个选项「请选择一个部门」显然是一个自订项目,而其它选项则是来自数据表的「部门」字段。以本范例而言,欲完成这样的设计,请依序进行下列设定:

 

1.           首先,请于网页上选取您的DropDownList控件,并于「属性」窗口中将属性AppendDataBoundItems属性设定成True

2.           紧接着,按一下Items属性之右侧的按钮。

3.           ListItem集合编辑器」对话框开启后,请按一下「加入」按钮,并于右侧窗格进行下列设定:

Ø          Text属性设定成“请选择一个部门”

Ø          由于我们希望此自订选项一开始就被选取,因此请将Selected属性设定成True

确认您的ListItem集合编辑器」对话框如图表2所示后,按一下「确定」按钮。

(请注意:您可以加入多个自订项目,欲加入多个自订项目,请反复步骤3的操作,直到您已经加入所需的多个自订项目为止)


图表
2

 

4.           最后,您必须替DropDownList控件设定来自数据表之「部门」字段的选项。欲达此目的,请从DropDownList控件的智能卷标选项中选取「设定数据来源」选项,以便建立一个SqlDataDataSource对象来查询出「部门」字段的部门作为选项。此部分我们就不再一一赘述,结果应如图表3所示。


图表
3

 

我想,上述作法是ASP.NET 2.0非常不错的一项功能,因为您不需撰写复杂的程序代码即可轻易完成相关处理。当然啦,如果您是位高竿的程序设计师,不想通过接口来处理,也可以直接在网页的Load事件处理例程中撰写下列程序代码来达到相同的目的:(不过我们建议您能够少写程序就少写些程序吧

 

Protected Sub Page_Load(ByVal sender As Object, _
  ByVal e As System.EventArgs) Handles Me.Load
  If Not IsPostBack Then
      Me.DepartmentDropDownList.Items.Add("请选择一个部门")

      ' 利用 SqlConnectionStringBuilder 对象来构建连接字符串。
      Dim connectStringBuilder As New SqlConnectionStringBuilder()
      connectStringBuilder.DataSource = "(local)\SQLEXPRESS"
      connectStringBuilder.InitialCatalog = "北风贸易"
      connectStringBuilder.IntegratedSecurity = True
      Try
          Using cn As New SqlConnection(connectStringBuilder.ConnectionString)

            Dim cmdLiming As New SqlCommand( _
              "SELECT DISTINCT 部门 FROM 章立民研究室", cn)

            cn.Open()

            Using dr As SqlDataReader = cmdLiming.ExecuteReader
                While dr.Read
                   DepartmentDropDownList.Items.Add(dr.GetSqlString(0).Value)
                End While
            End Using
          End Using
    Catch ex As Exception
          Me.lblMessage.Text = ex.Message
    End Try
  End If
End Sub

 

posted on 2006-12-08 10:27  章立民研究室  阅读(1199)  评论(1编辑  收藏  举报

导航