下載鏈接:
http://www.aygfsteel.com/Files/FlyPig/lxf060328.rar
二月份到三月份的時候,我做了一個項目。通過這個項目我認(rèn)識了Ajax。同時發(fā)現(xiàn)使用它沒有想象中的難。
關(guān)鍵的地方還是消息返回之后的操作,比如說點查詢后,因為沒有刷新,就得用返回的xml串重新構(gòu)建列表。
雖然我還沒有看同事寫的那一套腳本,但我覺得調(diào)用太麻煩了。所以就花了幾個晚上趕工寫了一些。
這個博客好像不提供附年上傳,所以我只好把地址貼在上面了。上傳的腳本,主要完成了xml串構(gòu)建html表格,分頁;表單校驗.例子在example下。
說明:
一、Xml填充表格:
XmlTable完成的功能,將
<table>
?<data>
??<colName1><![CDATA[value1]]></colName1>
??<colName2><![CDATA[value2]]></colName2>
?</data>
?<data>
??<colName3><![CDATA[value3]]></colName3>
??<colName4><![CDATA[value4]]></colName4>
?</data>
?...
</table>
格式的XML自填充到頁面上的html表里.每個data為一行.<colName{i}>里的數(shù)據(jù)填充到與表頭的id或col的id一致的對應(yīng)列里.
被填充的表格及表頭不用腳本構(gòu)建的原因,那是因為我覺得這是死的東西。直接寫頁面上就行了。
XmlTable的調(diào)用方法:
點查詢的時候調(diào)用的方法為:
TableHelper.fillPXTableByQuery(tableName,url,formName,temp);
參數(shù)介紹:
talbeName : 要填充的表的id;
url : 向服務(wù)器發(fā)出請求得到結(jié)果集的url;
formName : 查詢的表單名
temp : 這只是個臨時參數(shù).因為這里是靜態(tài)文件.分頁的數(shù)據(jù)我直接寫在xmlHelp.js的數(shù)組里了.表示取哪個數(shù)組而已.
點查詢的時候xml串的取得是為: url+表單里各項參數(shù)的結(jié)果.這里因為是靜態(tài)的,所以我寫死在數(shù)組里了.
分頁的生成方法:
TableHelper.attachXmlTablePageProcess(tableName,url,formName,pageDivName,temp);
參數(shù)介紹:
前面同上.
pageDivName : 分頁生成所在的Div的id
temp:臨時參數(shù).同查詢的參數(shù).
二、表單校驗:
功能說明:校驗表單,支持Enter和上下鍵.
調(diào)用方法:
每個要校驗的表單元素加上校驗說明,比如說非空即寫為:notNull="true",格式必須為正整數(shù)的,即寫為format="isInt".(這個方法是我一個同事的同事想的,我覺得很好)
body onload的時候調(diào)用:var fHandler =FormHelper.attachFormEventHandler(formName);
這會將光標(biāo)定位在第一個元素上.并在表單元素上附上onblur和onfocus事件.
提交按鈕的腳本里調(diào)用:
fHandler.validateNGenerateXmlStr();這會校驗表單,如果通過,會生成<eleName>eleValue</eleName>..的xml串.
其實我很想有時間來整理一些UI組件,整理一個常用的庫出來。不用每次項目中要用到時才趕工寫或到處找。可惜額滴水平有限。
這次寫腳本,我覺得比起我原來有進(jìn)步。比如**Helper.get**EventHandler()方法保證頁面里對同一個元素處理的類總是只有一個。嘿嘿。。
今天先寫到這吧。我好累。最近都工作到好晚,上次寫這一些腳本我有一星期一回家就坐電腦前(因為上班沒空寫),一直寫到三四點。這些腳本尚有bug,但我沒力氣改了。唉。