()在DropDownList中一個對手可能會出現多次而使得用戶不知道選擇哪場比賽我們最後的任務就是通過一個小技巧解決這個問題按如下代碼所示修改DropDownList控件的DataTextField屬性和該控件的數據源控件(SqIDataSource)的SelectCommand:
<asp:DropDownList ID=DropDownList runat=server
DataSourceID=SqlDataSource
DataTextField=FixtureCombo
DataValueField=FixtureID
AutoPostBack=true>
</asp:DropDownList>
<asp:SqlDataSource ID=SqlDataSource runat=server
ConnectionString=<%$ ConnectionStrings:WroxUnited%>
SelectCommand=SELECT [FixtureID](Opponents + +CONVERT(varcharFixtureDate )) As FixtureCombo FROM [Fixtures] ORDER BY [Fixturedate]>
操作回顧
這兩個頁面都是對前面練習的邏輯擴展與前面一樣修改SelectCommand(使用VWD的Configure Data Source向導)從而在WHERE子句中獲得參數的值在前一個試一試練習中參數存放在查詢字符串中但在這兩個頁面中參數來源於另一個控件
在第一種情況中GridView控件用選中的Select按鈕所在記錄的ID填充參數該值將由數據源控件用於其WHERE子句中一個重要的(通常容易被忽略的步驟)是將DropDownList控件的AutoPostBack屬性設置為True
在最後一步中您希望在DropDownList控件內顯示多個字段可以通過在SQL語句中將已存在的字段連接起來創建一個新的字段實現這個目的下面的代碼將對手的名稱空格符連字符和轉換過的比賽日期連接起來創建了一個名為FixtureCombo的字段
SelectCommand=SELECT [FixtureID](Opponents + +CONVERT(varcharFixtureDate )) As FixtureCombo FROM [Fixtures] ORDER BY [Fixturedate]>
注意加號(+)用於連接字符串的不同部分字段pponent的值可以直接從數據庫中取用FixtureDate的值也可以從數據庫中獲取但它的格式是日期不是您所需要的格式所以將它轉換為一種稱為varchar的類型這是一種字符串然後使用由一個空格一個連字符和另一個空格組成的分隔部分將兩個字符串連接起來
ASPNET 入門教程完整版
[] [] []
From:http://tw.wingwit.com/Article/program/net/201311/15202.html