大家好!今天是第二天,昨天講了講NoahWeb中"表單"的入門知識,今天我們來接著看看其他內(nèi)容。
表單中的各種控件中,只要牽扯到帶有“被選值”的控件,比如select,radio,choice類型等等,在NoahWeb表單中就可以使用Values標(biāo)簽來為其提供“被選值”,使用Values標(biāo)簽還可以很容易的從數(shù)據(jù)庫中獲得被選值內(nèi)容,Values用起來很方便。今天給大家講的就是這部分內(nèi)容。
還記得昨天說到的那些控件嗎?比如Select,就是下拉單,表單里最常用的。一個下拉單中的可選值可以用<option Value>標(biāo)簽往里加,就像下面的代碼一樣:
<option Value="A">A</option>
這個是用固定好的值來作為“被選值”內(nèi)容的,而很多時候我可以是需要用數(shù)據(jù)庫中存在的內(nèi)容來作為被選值的,這情況下就可以使用我們今天要講的內(nèi)容——用數(shù)據(jù)庫的內(nèi)容作為被選值。我們還是看下面的代碼好啦:
<InputLine Text="部 門:" Desc=""> <Input Id="mydept" Type="select"> <Label></Label> <LabelClass>label</LabelClass> <NullErrorString>請選擇員工所在部門!</NullErrorString> <Values ValuesSQLLink="dept_S_all" ValuesSQLValue="[_LOOP.*.id]" ValuesSQLLabel="[_LOOP.*.name]" BySelectArrayString="[mydept]"> <option Value="">請選擇</option> </Values> <class>myinputstyle</class> </Input> </InputLine>
上面的例子中,用dept_S_all這個數(shù)據(jù)庫操作集查詢了一下數(shù)據(jù)庫的dept表,dept表的結(jié)構(gòu)和內(nèi)容如下:
dept_S_all數(shù)據(jù)庫操作集的在NoahWeb設(shè)計器中的樣子如下:
有關(guān)NoahWeb設(shè)計器中的數(shù)據(jù)庫操作大家可以參看其他的文章,今天咱們講表單就不說這些內(nèi)容了。
我們還是回過頭來看代碼。還是上面那段代碼:
<InputLine Text="部 門:" Desc=""> <Input Id="mydept" Type="select"> <Label></Label> <LabelClass>label</LabelClass> <NullErrorString>請選擇員工所在部門!</NullErrorString> <Values ValuesSQLLink="dept_S_all" ValuesSQLValue="[_LOOP.*.id]" ValuesSQLLabel="[_LOOP.*.name]" BySelectArrayString="[mydept]"> <option Value="">請選擇</option> </Values> <class>myinputstyle</class> </Input> </InputLine>
大家看到上面代碼中的Input的Type了嗎?是個Select是下拉單,再看看Values標(biāo)簽中的部分,細(xì)節(jié)部分聽我慢慢道來!
。、先看Values標(biāo)簽,它可以用來指定控件中可選值的來源。而今天講的使用數(shù)據(jù)庫查詢方式給控件提供可選值就需要配合使用Values標(biāo)簽的幾個參數(shù)。
。病(shù)ValueSQLLink來指定一個數(shù)據(jù)庫操作集,用來表明通過那一個數(shù)據(jù)庫操作來獲得被選值的內(nèi)容,F(xiàn)在我指定的就是“dept_S_all”這個操作集。這樣就會根據(jù)dept_S_all操作集的返回結(jié)果來循環(huán)生成被選值內(nèi)容。
3、ValueSQLValue參數(shù)來表示該控件的可選擇值的值所對應(yīng)的變量表達(dá)式,簡單點說我們希望用數(shù)據(jù)庫中的id字段的內(nèi)容來做為被選值的值內(nèi)容就可以寫成“[_LOOP.*.id]”。在這說明一下NoahWeb中的變量都是使用"[]"來標(biāo)識的,而[_LOOP.*.id]就是一種變量表示的方法,要了解更多NoahWeb變量表示方法大家可以查看NoahWeb的官方文檔。
。,ValuesSQLLabel參數(shù)表示該控件的可選擇值的值所對應(yīng)的名稱表達(dá)式。簡單點說我們希望用數(shù)據(jù)庫中的name字段內(nèi)容來做被選值的顯示文本,就寫成“[_LOOP.*.name]”。
說白了,ValuesSQLLabel是在下拉單中看到的值,而ValueSQLValue則是當(dāng)你在下拉單中選擇了一個值之后它所對應(yīng)的值。
把這個select放到一個NoahWeb表單中的時候,我們看看表單中的樣子。如下圖:
圖中紅圈部分就是上面代碼的實際運行情況,是不是很容易?這樣該select的被選值就會根據(jù)dept的變化而變化,如果希望系統(tǒng)中出現(xiàn)一個新的部門,只需要將新的部門內(nèi)容加入到dept表中就可以。
還有,可不是只有Select類型控件能這么做,什么,radio,checkbox,choice,都可以這么用。唯一你需要做的就是把Input中的Type由select換成radio或checkbox或choice.其他的地方不用做改動.
更換后的效果可以看下面的圖:
上圖是Type="radio"的顯示。
上圖是Type="checkbox"的顯示。
上圖是Type="choice"的顯示。
仔細(xì)看的人可能已經(jīng)發(fā)現(xiàn),換了Type的類型后<option Value="">請選擇</option>沒有輸出了。再仔細(xì)看一下能發(fā)現(xiàn)這些沒起作用的類型都是不能選擇“空”的而<option Value="">請選擇</option>里的Value是空的,所以NoahWeb引擎在生成的時候就為我們過濾掉了值為“空”的被選項。
行了,今天就到這里吧!記著,只要是能提供多個被選值的控件,就一定要使用Values標(biāo)簽!
出處:藍(lán)色理想
責(zé)任編輯:藍(lán)色
上一頁 第一天 下一頁 第三天
◎進(jìn)入論壇網(wǎng)絡(luò)編程版塊參加討論
|