原文出处:
想要让DropDownList的子选项(DataTextField),出现两个字段
如果您透过 SqlDataSource的精灵来作,DataTextField只能放一个字段。
必须自己写程序来处理才行。
这是在论坛上看见的发问,参考数据如下:
http://www.blueshop.com.tw/board/FUM20041006161839LRJ/BRD20101114072706MJM.html
http://social.msdn.microsoft.com/forums/zh-TW/236/thread/94722bd1-8701-4e64-90e6-de9ade86b733
作法有两种。
因为要撰写 ADO.NET程序,所以比较适合放在本书「上集」的第十四章
ASP.NET案例精编(清华大学出版社 / 作者MIS2000Lab)
2009/5/15上市
市场价 :¥59.80 RMB(人民幣)
首先,NameSpace都要自己宣告这些
Imports System
Imports System.Web.ConfigurationImports System.DataImports System.Data.SqlClient
第一,是透过 SQL指令来处理。
Protected Sub Page_Load(ByValsender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim Conn As SqlConnection = NewSqlConnection Conn.ConnectionString = WebConfigurationManager.ConnectionStrings("存在Web.Config里面的连结字符串").ConnectionStringDim dr As SqlDataReader = Nothing
'==重点!!== 透过SQL指令解决!==
Dim cmd As New SqlCommand("selectid, title, author, title+author as NewField from test", Conn)Try '==== 以下程序,只放「执行期间」的指令!=====================
Conn.Open() '---- 这时候才连结DB'---- 这时候执行SQL指令,取出数据。
dr = cmd.ExecuteReader() 'dr.Read()DropDownList1.DataTextField = "NewField" '==重点!!==
DropDownList1.DataValueField= "id"DropDownList1.DataSource = dr DropDownList1.DataBind()
Catch ex As Exception '---- 如果程序有错误或是例外状况,将执行这一段 Response.Write("<b>ErrorMessage---- </b>" + ex.ToString() + "<HR/>") Finally If Not(dr Is Nothing) Then cmd.Cancel() dr.Close() End IfIf (Conn.State= ConnectionState.Open) Then
Conn.Close() Conn.Dispose() End If End Try End Sub第二,是写程序慢慢处理每一个「子选项」
Protected Sub Page_Load(ByValsender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim Conn As SqlConnection = NewSqlConnection Conn.ConnectionString = WebConfigurationManager.ConnectionStrings("存在Web.Config里面的连结字符串").ConnectionStringDim dr As SqlDataReader = Nothing
Dim cmd As New SqlCommand("selectid, title, author from test", Conn)Try '==== 以下程序,只放「执行期间」的指令!=====================
Conn.Open() '---- 这时候才连结DB'---- 这时候执行SQL指令,取出数据。
dr = cmd.ExecuteReader()Dim iAs Integer = 0
'====== 重 点!!======================Whiledr.Read() DropDownList1.Items.Add(dr("title") & " / " & dr("author")) DropDownList1.Items(i).Value = dr("id") i = i + 1 End While
'===================================Catch ex As Exception '---- 如果程序有错误或是例外状况,将执行这一段
Response.Write("<b>ErrorMessage---- </b>" + ex.ToString() + "<HR/>") Finally If Not(dr Is Nothing) Then cmd.Cancel() dr.Close() End IfIf (Conn.State= ConnectionState.Open) Then
Conn.Close() Conn.Dispose() End If End Try End Sub
以上程序使用的修改而来。
很简单。
范例很简单了,所以不附上 C#范例。
ASP.NET案例精编(清华大学出版社 / 作者MIS2000Lab)
2009/5/15上市
市场价 :¥59.80 RMB(人民幣)