五月综合缴情婷婷六月,色94色欧美sute亚洲线路二,日韩制服国产精品一区,色噜噜一区二区三区,香港三级午夜理伦三级三

您現(xiàn)在的位置: 365建站網(wǎng) > 365文章 > 使用ExtJs在客戶端實現(xiàn)主從表的簡單維護

使用ExtJs在客戶端實現(xiàn)主從表的簡單維護

文章來源:365jz.com     點擊數(shù):976    更新時間:2009-09-14 10:27   參與評論

      在Web開發(fā)方面,實現(xiàn)主從表的維護需要考慮數(shù)據(jù)類型的轉(zhuǎn)換以及狀態(tài)保持等問題,之前使用ASP.NET的服務(wù)端控件實現(xiàn)了一套,但反復(fù)的頁面回傳,以及服務(wù)端的狀態(tài)同步,造成代碼量巨大,且重復(fù)代碼非常多,十分讓人厭煩,后來使用ExtJs在客戶端實現(xiàn)了主從表維護的簡單維護,這里從問題的分析和解決方法兩方面進行說明,將大致的思路記錄下來,具體的實現(xiàn)細節(jié)就略過了,歡迎感興趣的朋友一起討論。

      編程么,重要的是思想和過程,不是么?

      問題分析:
      1.主從表功能組織的頁面元素  
        主表:FormPanel
        從表:EditorGridView

      2.狀態(tài)枚舉:
        1)主從表都為新增狀態(tài)(標志符ID為-1),
        2)主表為更新狀態(tài)(如ID為100),從表為新增狀態(tài)(ID為-1,父ID為100)
        3)主表為更新狀態(tài)(如ID為100),從表部分為新增狀態(tài)(如ID為150,父ID為100),部分為更新狀態(tài)(ID為-1,父ID為100)
        4)主表為更新狀態(tài),從表為更新狀態(tài)

      3.數(shù)據(jù)提交
        1)如何組織主從表數(shù)據(jù)結(jié)構(gòu)
        2)如何標志數(shù)據(jù)狀態(tài)
        3)如何標志數(shù)據(jù)ID
        4)數(shù)據(jù)提交后,是否需要更新客戶端狀態(tài)?如果需要,如何更新,否則,多次提交怎么辦?

      4.服務(wù)端解析
        1)服務(wù)端如何解析
        2)解析后的對象,如何存儲
        3)存儲后的數(shù)據(jù)如何通知到客戶端狀態(tài)

      解決思路

        1)數(shù)據(jù)的存儲:
          FormPanel中添加隱藏域:用于保存從表數(shù)據(jù)(store...的json格式串)
          如果有多個從表對象,則添加多個隱藏域字段

        2)數(shù)據(jù)讀取和顯示
         數(shù)據(jù)讀取到界面時,通過服務(wù)端返回xml中(主表),其中xml隱藏域節(jié)點中添加從表(store json格式)的數(shù)據(jù)源,
      然后客戶端成功接收后,讀取store,并更新到從表EditorGridView中
       3)數(shù)據(jù)的編輯
        主表通過FormPanel進行數(shù)據(jù)的編輯,從表使用EditorGridView,每個cell通過對應(yīng)的Editor進行編輯,新增和更新不需要進行特殊處理,
      刪除時,注意需要判斷當前數(shù)據(jù)是新增還是已保存到數(shù)據(jù)庫的記錄,如果是新增數(shù)據(jù),則直接從EditorGridView對應(yīng)的Store中remove該
      條數(shù)據(jù),后者則設(shè)置該記錄的狀態(tài)字段為field.setValue("delete","true"),新增和更新數(shù)據(jù)的狀態(tài)字段為{delete:false},然后調(diào)用store.filter("delete","false")
      對客戶端數(shù)據(jù)進行過濾,不顯示已刪除的數(shù)據(jù)。

       4)數(shù)據(jù)的提交
         主表FormPanel提交時,需要讀取EditorGridPanel從表中的store同步到隱藏域中,然后通過form提交,

       5)服務(wù)端數(shù)據(jù)的解析
         服務(wù)端接收到客戶端傳來的數(shù)據(jù)后,解析數(shù)據(jù)并還原主從表的業(yè)務(wù)對象,新增和更新通過主鍵是否為-1進行區(qū)別,是否刪除通過刪除字段delete來區(qū)分,

       根據(jù)狀態(tài)調(diào)用相應(yīng)的業(yè)務(wù)邏輯進行處理。

       6)處理結(jié)果的返回
         注意此處同步驟2)相似,不同在于,處理結(jié)果是在表單提交后的回調(diào)函數(shù)中進行處理。

如對本文有疑問,請?zhí)峤坏浇涣髡搲?,廣大熱心網(wǎng)友會為你解答?。?點擊進入論壇

發(fā)表評論 (976人查看,0條評論)
請自覺遵守互聯(lián)網(wǎng)相關(guān)的政策法規(guī),嚴禁發(fā)布色情、暴力、反動的言論。
昵稱:
最新評論
------分隔線----------------------------

其它欄目

· 建站教程
· 365學習

業(yè)務(wù)咨詢

· 技術(shù)支持
· 服務(wù)時間:9:00-18:00
365建站網(wǎng)二維碼

Powered by 365建站網(wǎng) RSS地圖 HTML地圖

copyright © 2013-2024 版權(quán)所有 鄂ICP備17013400號