任何框架由于個人理解不到位或者框架自身的局限性,在項目實施中,大家或多或少都會遇到一些問題,下面我就講述下我在使用DWZ開發(fā)過程中的幾個問題。如有一點能幫助到你,這篇文章也算有存在的意義了。
DWZ自帶樹控件用于菜單展示還是不錯的,但用于展示層數較多、數據量較大的樹形菜單時,就顯得捉襟見肘了。這里向大家推薦一款js插件:zTree ,看重它的原因在于它包含豐富的API和優(yōu)秀的Ajax能力,你不需要擔心它的學習成本,示例也較為豐富。
有興趣的朋友可參觀官網: http://www.ztree.me/v3/main.php#_zTreeInfo
引用時稍微注意一下,只要引用如圖1.1所示的2個文件即可。demo中可能會有其他的js和CSS文件,那是為了更好的展示demo而存在的,毋須引用(引用時發(fā)現也會和當前的框架沖突)。

(圖1.1)
在開發(fā)過程中,你肯定會遇到這個問題:自己建的界面并沒有完全占滿整個屏幕,將div設置固定高度,換個不同規(guī)格的顯示器又會出現問題。layoutH就可以解決此問題。
那到底代表什么含義呢?如圖2.1所示,B的父元素為600px,定義B的layoutH為100,則B的高度為500px,實際上B的高度是父元素高度-layoutH。

(圖2.1)
列表是后臺管理界面的重要組成部分,框架自帶的增刪改功能也是相當完善的,但在實際開發(fā)中還是遇到了些問題。
我比較喜歡前臺js腳本直接輸出到界面組成html的方式來顯示頁面。但發(fā)現,動態(tài)生成的界面并沒有顯示出理想的效果。原因是什么呢?借助debug工具發(fā)現,原來在生成html后,dwz會自動加載并重新組裝。而js前臺生成的html,dwz無法預知它什么時候觸發(fā),界面重寫也就無能為力了。后來查看dwz的js 那jTable和initUI到底有什么不同呢?后經測試發(fā)現,jTable是個較為輕量的函數,只對table樣式起作用。而initUI則會重新加載所有樣式。值得注意的是,initUI是可以不帶參數的,也就是說可以加載整個頁面。當然這也是不建議的,通常填寫你要加載的div就可以了,這樣可以避免整個界面樣式出現不協調或者加載時間過長的問題。table中我們經常會在第一列放上checkbox做批量操作處理,注意了,這時就要使用initUI了,jTable不包括這個功能。 我在ajax異步操作時操控表單顯示某項時發(fā)現不起作用,后來反復調試,發(fā)現ajax 同步時,便可解決此問題。但至今還不清楚原因。如有朋友清楚,可在后面留言,不勝感激。 函數很簡單:$.pdialog.closeCurrent();便可在你需要關閉時調用即可。 為什么我要特別說一下這個問題呢?大家清楚,一般彈出模態(tài)框都是用來添加或修改數據的。那我們如何在關閉模態(tài)框后刷新父頁面的數據呢?前一篇我們講過,dwz是將頁面動態(tài)加載到div上的,換言之,雖然模態(tài)框展示的是另外一個界面,但對位dwz講,他就是div的內容。也就是說模態(tài)框可以直接調用父頁面的函數,這里說父頁面有點不確切,因為他們實際上在同一個頁面中。回歸話題,我們要刷新頁面實際上去調用父頁面的數據初始化方法即可。 這很方便,同時也帶來了麻煩。如果項目界面較多,由于方法可以互相訪問,如果命名的方法相同,可能會造成匪夷所思的結果。所以建議大家在使用時,每個功能后面加上頁面功能描述,如添加用戶界面初始話數據方法就可以寫成:initData4AddUser(); 以上是我個人的一些經驗。當然在使用中,還會遇到各種各樣的問題,我也不可能面面俱到。 示例demo就先不放上去了,需要的朋友請在后留言。 如有弊處,歡迎大家進行斧正。4.下拉菜單
5.關閉當前模態(tài)框
新聞熱點
疑難解答