前言:
經過前面那么多篇的列表的介紹,終於到了大伙期待的表單開發了。
也是本系列的最后一篇文章了!
1:表單頁面的權限設置與繼承
對於表單頁面,權限的設置有兩種:
1:你可以選擇添加菜單(設置為不顯示)並配置權限。
2:不設置權限,繼承自父頁面。
因此,如果你單獨打開一個沒有單獨設置權限的頁面,得到的效果就是:
2:簡單單表的開發Demo
1:新建ArticleEdit.html
html是從UserEdit.html Copy過來簡單調整的,畢竟為了統一樣式。
當然你也可以自定義樣式,那樣的話只要關注1、2、3的內容即可。
表單的內容為:
<div class="line"> <div class="short"> <label><em>*</em>文章分類:</label> <input name="CateID" objname="C_Demo_ArticleClass" defaultitem="false" /> </div> <div class="short"> <label>標題:</label> <input name="Title" missingmessage="" class='easyui-validatebox' /> </div> <div class="short"> <label>創建時間:</label> <input name="CreateTime" class="easyui-datetimebox" style="width: 150px;" required="true" editable="false" /> </div> </div>
然后就完事了,不需要寫事件。
效果:(按鈕沒居中的樣式問題就先忽略了)
2:原理流程解釋:
1:數據如何加載填充?
默認會從父頁面拿到objName和tableName,和傳過來的id參數傳到后端,調用Get方法拿回數據,並加載。
2:不用寫事件代碼?
框架默認集成了提交事件,默認會從父頁面拿到objName和tableName,和搜索表單的數據提交到后端,調用Add或Update處理數據。
3:框架如何識別是Add或Update?
在調用窗體打開的時候,已經指定了方法名。
4:下拉數據是怎么出來的?
還記得大明湖胖的格式化么?就是那個#配置項,或#C_XXX的。
只要對input新增屬性即可:
configkey="配置項"
objname="C_XX"
3:自定義表單事件
1:讀取加載數據時,如何追加自定義參數到自己寫的后台方法?
在加載表單事件之前,修改請求的方法名稱為GetMyBlog。
那GetMyBlog方法在哪里定義?
ArticleEdit.html文件所在的文件夾名稱為Article,所以,定義一個:ArticleController
把處理后的Json結果交給jsonResult即可。
2:事件 - 表單提交的參數修改:
比如當你引入富文本編輯器如CKEditor或UEEditor等編輯器時,自動收集的表單是收不到它們的,所以需要動態的賦值。
formData 是已經收集好的表單數據,可以修改移除或追加。
更新說明:formData參數由數組變更為json。
用法為:formData.XXX=Value
3:事件 - 表單加載時的參數修改:
同樣對於富文本編輯器,系統的自動填充值也是處理不了的,需要動態的賦值。
4:其它信息補充:
1:已經介紹前端怎么指定自定義方法名,后台怎么處理多表?
這是CYQ.Data操作數據庫的問題,具體可以看Github網址下的Demo教程鏈接:
https://github.com/cyq1162/cyqdata
也可以參考系統中的UserEdit.html,默認也是多表處理。
2:對於表單的內容,一個一個寫似乎有點復雜,框架有提供表單生成:
在列表頁面,通過配置表頭,生成表單html中,拿到數據,再調整即可。
好了,入門教程就寫到了這里了,不准備發布第10篇了。
寫一篇教程不容易,建Demo,F5跑、截圖,中間還思考怎么改進代碼和使用方式。
所以剛剛還提交了源碼更新。
總結:
認真研究的朋友已經發現,不管是前端還是后端,里面都有很多可圈可點地方。
框架在設計上,盡量保持做到着無入侵,完全復蓋即升級的方法。
框架在擴展上,都提供了各種手法,而且手法統一。
你要的,都可以通過事件的擴展處理,不需要改動框架的任何源碼。
謝謝大伙的關注與支持,本系列到此結束!