台灣最大程式設計社群網站
線上人數
924
 
會員總數:243175
討論主題:187988
歡迎您免費加入會員
討論區列表 >> ASP.NET >> 如何讓下拉選單連動產生checkbox
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
如何讓下拉選單連動產生checkbox
價值 : 100 QP  點閱數:555 回應數:11

樓主

阿亮
門外漢
0 19
784 25
發送站內信

最近碰到一個需求是
在選完下拉選單後,要能夠連動帶出選單結果相關的資料並能夠多選

因為想到如果用選單內多選的方式
可能會不方便使用者操作

所以在想是不是可以將帶出資料用checkbox來顯示




搜尋相關Tags的文章: [ 下拉選單 ] , [ 連動 ] , [ checkbox ] ,
本篇文章發表於2017-12-01 13:22
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
回應

小羊窒息
捐贈 VP 給 小羊窒息 檢舉此回應
連動帶出的選單, 從DropdownList換成CheckBoxList
本篇文章回覆於2017-12-01 15:43
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
回應

topcat
捐贈 VP 給 topcat 檢舉此回應
因為想到如果用選單內多選的方式
可能會不方便使用者操作

所以在想是不是可以將帶出資料用checkbox來顯示

這當然OK

在透過精靈設定 CheckBoxList 的 DataSource 的時候
您可以設定條件的來源是『控制項』,而該控制項,指定為DropDownList

就醬子

^_^
本篇文章回覆於2017-12-01 19:06
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
作者回應

阿亮
檢舉此回應
已經用innerHTML的方式加入checkbox項目

不過在進入FormViewMode.Edit時要如何觸發client端的function讓droplist對應的checkbox 產生出來呢?
是想在進入FormViewMode.Edit時觸發checkbox的產生function
還是說在後端直接產生選單對應的checkbox項目。

動態產生的checkbox項目,有勾選的項目會把勾選項目id串成字串後存入
打算在在edit模式時將字串分割將對應到的checkbox id 改為checked狀態
本篇文章回覆於2017-12-12 09:49
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
回應

topcat
捐贈 VP 給 topcat 檢舉此回應
動態產生控制項,會有很多眉眉角角的東西要注意與撰寫

小喵通常用畫面設定的方式預先擺放相關控制項
再以Visiable來控制是否看得到

樓主參考一下

本篇文章回覆於2017-12-12 14:37
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
回應

topcat
捐贈 VP 給 topcat 檢舉此回應
最近碰到一個需求是
在選完下拉選單後,要能夠連動帶出選單結果相關的資料並能夠多選

因為想到如果用選單內多選的方式
可能會不方便使用者操作

所以在想是不是可以將帶出資料用checkbox來顯示


您要不要舉閣實際的例子,什麼樣的資料在DropDownList
什麼樣的資料在FormView
什麼樣的資料在CheckBoxList

這樣比較容易針對您的需求,給您相關範例

^.^a
本篇文章回覆於2017-12-12 14:42
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
作者回應

阿亮
檢舉此回應
感謝各位的幫忙

這邊再說一下目前的情況
目的是要做設備檢查的排程設定。
資料欄位都在formview中
在設備名稱選單選完後,用jquery帶出對應的設備編號checkbox放入<span></span>中
而勾選的設備編號在前端進行字串合拼存入hidden欄位
新增的部分動作都沒有問題
修改的部分
目前卡在設備編號的checkbox產生
一開始是想在前端在進入edit畫面時觸發設備名稱選單動作帶出設備編號checkbox
可是找不到在前端觸發的方式
之後改在後端的FormViewMode.Edit做
已做出checkbox產生,但在變動選單後,原來的onchange事件
會出現錯誤
目前找出是清空事件找不到正確的span id產生的問題
insert用的span清空方法是
$("#span1").empty();

在edit下就找不到了

本篇文章回覆於2017-12-13 13:50
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
作者回應

阿亮
檢舉此回應
找到方法了
改用$("div[id$=devck]").empty();就能找到了

後端新增checkbox想要加入onclick事件
下面是formview.edit產生checkbox的程式

本篇文章回覆於2017-12-13 15:26
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
作者回應

阿亮
檢舉此回應
onclick事件加入的方法找到了
用ckb.Attributes["onclick"] = "addType2(this)"; 就能加入了

可是前端addType2在抓checkbox的id時
抓到的id會變型
上網找到可以用ClientIDMode ="Static"
讓id正常。
現在在找如何加入ClientIDMode ="Static"的方法
本篇文章回覆於2017-12-13 18:05
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
9樓
回應

禿頭貓
檢舉此回應
可先設定 AutoPostback = True
當下拉選單變更後,會觸發 SelectedIndexChanged 程序,這時可以依選擇的條件做版面的變更
本篇文章回覆於2017-12-18 18:00
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
10樓
Sub dw()
Dim sql As String = " select distinct [系統別] from ERP資料表(nolock)"
Dim dt As DataTable = db.getdt(sql)
Me.DropDownList1.Items.Add("--請選擇--")
For i As Integer = 0 To dt.Rows.Count - 1
Me.DropDownList1.Items.Add(dt.Rows(i)(0).ToString)
Next
End Sub

Protected Sub DropDownList1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DropDownList1.SelectedIndexChanged
Me.CheckBoxList1.Items.Clear()
If Me.DropDownList1.SelectedItem.Text <> "--請選擇--" Then
Dim sql As String = " select [資料表] from ERP資料表(nolock) where [系統別]='" + Me.DropDownList1.SelectedItem.Text + "'"
Dim dt As DataTable = db.getdt(sql)
For i As Integer = 0 To dt.Rows.Count - 1
Me.CheckBoxList1.Items.Add(dt.Rows(i)(0).ToString)
Next

End If
End Sub

<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True">
</asp:DropDownList>
本篇文章回覆於2017-12-20 09:43
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
11樓
作者回應

阿亮
檢舉此回應
感謝指點
有找到其他方法了

用id.ClientIDMode = ClientIDMode.Static;
就能讓指定對象啟用ClientIDMode 了
本篇文章回覆於2017-12-20 13:17
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.