◎以上程式範例AspNet08.aspx,如在頁框下不能操作,請開新視窗操作
◎如果有問題歡迎您提出,dnowba很需要有人和我一起討論
Partial Class AspNet08 Inherits System.Web.UI.Page Protected Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init Me.DropDownList1.AutoPostBack = True Me.ListBox1.AutoPostBack = True Me.Label1.Text = "" Me.Label2.Text = "" End Sub Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load ' ===== 搭配資料庫使用DropDownList和ListBox ===== ' 這個程式還是有不足之處,例如在還沒有選擇索引分類號時,就不應該出現書籍 ' 之所以會出現,是因為資料庫連結等程序都是透過Visual Studio的smart tag直接完成, ' 若是使用這樣方式完成的ADO.NET,都是在Page_Load時就把資料繫結(DataBind)了 ' 所以我們如果要避免「還沒選取索引分類號,就已經顯示書籍」的話, ' 有二種方式: ' (1) 障眼法:還沒有選就不要顯示DropDownList,不過這樣的話資源還是會被消耗 ' (2) 比較好的方式:選了以後再DataBind ' 不過這二個改善後,隨之而來的問題就是… ' 你怎麼讓DropDownList中第一個子選項預設不被選取 ' 你怎麼讓DropDownList中第一個子選項被選取 ' 呵呵,這個隨之而來的問題,我相信做過實務的都有碰過…這邊要討論的主角不是它,就不多說 End Sub Protected Sub DropDownList1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DropDownList1.SelectedIndexChanged Me.Label1.Text = Me.DropDownList1.SelectedItem.Text End Sub Protected Sub ListBox1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged Me.Label2.Text = Me.ListBox1.SelectedItem.Text End Sub End Class
連接資料庫與控制項交互應用
1、點選ListBox控制項,展開智慧標籤(Smart Tag)並「選擇資料來源」
2、在 「設定資料來源」的表單中,選擇「指定資料表或檢視的資料行」可以不用自行撰寫資料庫指令,直接從下拉選單擇取資料表,並勾選要使用的資料欄位即可
3、這邊要特別加上「where」子句,開啟另一個表單後也不用自已寫句子,拉拉選選就可以了。
4、資料行、運算子、來源是基本where條件子句的元素,特別注意來源的設定可以是「控制項」的值
5、設定參數屬性,選擇要使用的控制項(ID)
6、加入後在底下的框架還提供了檢視
設定資料來源也可以「自訂SQL陳述式或預存程序」
如果使用比較複雜的SQL語法的話,就必須要自已撰寫了…撰寫的方式可以在Web Service這裡直接寫陳述式,也可以在SQL Service那端寫好預存程序帶入。
不管怎樣,重要的是控制項取得的值如何能和SQL語法應用在一塊,如以下:
SELECT TOP (10) 書名 FROM 書籍資料 WHERE (索書號 LIKE '%' + @索書號 + '%')
<body> <form id="form1" runat="server"> <div> 先選擇索引分類號<asp:DropDownList ID="DropDownList1" runat="server" DataSourceID="SqlDataSource1" DataTextField="類別索引號" DataValueField="類別索引號"> </asp:DropDownList> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>" SelectCommand="SELECT [類別索引號] FROM [索引號設定]"></asp:SqlDataSource> <br /> 以下為該分類號的書籍清單<br /> <asp:ListBox ID="ListBox1" runat="server" DataSourceID="SqlDataSource2" DataTextField="書名" DataValueField="書名"></asp:ListBox> <asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>" SelectCommand="SELECT TOP (10) 書名 FROM 書籍資料 WHERE (索書號 LIKE '%' + @索書號 + '%')"> <SelectParameters> <asp:ControlParameter ControlID="DropDownList1" Name="索書號" PropertyName="SelectedValue" Type="String" /> </SelectParameters> </asp:SqlDataSource> <br /> <hr /> <br /> 執行結果:<br /> 你選擇的分類號:<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label> <br /> 你選擇的書籍:<asp:Label ID="Label2" runat="server" Text="Label"></asp:Label> </div> </form> </body>
您好,
回覆刪除想請問一下 ListBox 連結資料庫之後 還能再自行新增選項嗎?
我試了好多方法,都無法新增。
我想要多加一個選項"全選"在ListBox中,該怎麼做?
謝謝
ListBox 連結資料庫之後 還能再自行新增選項嗎?
刪除當然可以,「web 2.0」的控制項,如果不能「互動」怎敢言之
你可以參考我其他有關「listbox」的文章
裡頭有局部的提到「全選」或是「自已新增子選項」的方式
從您的問題看來是新手級的
控制項在DataBinding後還要能手動加子選項
是要在程式碼的部分去加入的,在html原始碼上加的話
畫面一render就會因為你的資料綁定把控制項整個初始化(initialize)的
建議您多把listbox的方法調用出來看一下
簡單的調用程序能讓你一下子就明白的
抱歉我時間也有限
如果你真的試不出來再留個言給我
我再寫個簡單的使用讓你學習^^