ASP.NET 2.0:如何讓DropDownList同時擁有資料來源項目與自訂項目 自章立民CnBlogs)

來源:互聯網
上載者:User
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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.