現在工作上有乙個常見的需求:第乙個下拉框選擇倉庫型別,第二個下拉框倉庫名稱其選項自動展示對應倉庫型別名稱。
如:
繞了一些彎路,所以總結一下在不同應用場景下的做法
這種情況比較好做,建議建立資料集引數,比較方便。
詳情在帆軟的幫助文件頁面有例子,鏈結貼在這:
這種情況再用第一種方法就比較難行的通了。
基本思路按照第乙個方法,建立三個資料集,第乙個資料集為資訊表,其中有兩個引數,倉庫型別和倉庫名稱。第二個資料集為選擇倉庫型別,無引數。第三個資料集為倉庫名,引數為倉庫型別。
為了實現兩個下拉框不選擇時,預設全選,三個資料集sql語句為:
-- 資訊表
select 《資訊資料》
from 資訊表名
where ((case when len($)=0 then 1 end) = 1 or locationtype = $)
and ((case when len($)=0 then 1 end) = 1 or whname = $)
-- 注意不要忘了case語句最後有個end!!!
-- 倉庫型別資料集
--在此就不貼了,就是簡單的選擇語句
-- 倉庫名稱資料集
select distinct
whname
from 表名
where
(case when isnull($,'')='' then 1 end
)=1or
locationtype = $
自認為邏輯是沒有問題的。但是當下拉框選值為空的時候,報錯!
我開始搞不懂下拉框為不選時其所返回的值,又去查了一下下拉框的顯示值和實際值,在過濾和公式裡都可以用len($元件名)來判斷不選情況。查詢無果。
正確方式:將2個引數設定為模板引數,下拉框用資料字典的公式形式,再用單元格進行過濾。
好處:1. 能夠處理元件聯動。2. 能夠實現不選時,全選功能
下拉框數字字典公式為:
if ($倉庫型別=0,sql("資料來源","select distinct whname from 表名 where locationtype = 0",1),
if($倉庫型別=2,sql("資料來源","select distinct whname from 表名 where locationtype = 2",1),
sql("資料來源","select distinct whname from 表名",1)))
對於列的單元格過濾為:
if(len($倉庫型別)==0,nofilter,$倉庫型別)
以上。
如有錯誤,請大家熱心指正!
extJs之下拉框聯動
在ext的世界裡面,我重新感受到了在學校裡玩swing的記憶.那時我們都需要為乙個控制項建立乙個資料來源,在把這個資料來源繫結在控制項上.ext也是如此.首先,兩個下拉框,第乙個下拉框首先load資料來源,在select的事件中在load第二個資料來源,這就是乙個簡單的二級聯動的實現原理了.第乙個下...
下拉框聯動
這裡寫了selclass和sellesson兩個下拉框,下拉框的selclass的選中值事件會觸發addsellesson 方法,該方法通過ajax向後台非同步請求資料動態給下拉框sellesson賦值 html 如下 班級課程 selclass onchange addsellesson styl...
下拉框聯動
default.aspx.cs using system using system.data using system.configuration using system.collections using system.web using system.web.security using sy...