總目錄
本實例旨在以一個實際的項目中的例子來介紹如何在dtcms中制作插件,本系列文章非入門教程,部分邏輯實現一帶而過,敬請諒解。
項目要求是在dtcms中增加一個電子資源管理,並且提供靈活的篩選方式。
由於涉及內容比較多,打算分4個部分來描述,內容頁是我自己一點一點摸索出來的,在原有的基礎上進行開發已經是第3次了,這一次對插件制作進一步理解深刻,同時通過不斷的調試摸透了URL重寫的規則。
本章目錄
- 后台列表頁實現
- 后台詳情頁實現
一、后台列表頁實現
上一節我們新建項目的時候已經新建過一個admin/index.aspx頁面了,也修改過相關對應的命名空間,下面我們就實現后台列表頁的效果,最終效果如下圖
1.后台服務器代碼
首先是后台服務器代碼,因為我們是復制的友情鏈接的代碼,所以大部分代碼是可以重用的,只要把對應的取數據庫的地方修改一下即可,按照頁面加載的順序和功能的順序,我們一個一個函數的修改
2.pageload函數
檢查權限的地方,一定要記得修改成plugin.config里設置的后台菜單的name,否則設置的權限沒有效果。
3.RptBind函數
這個函數是最主要的數據獲取函數,這里獲取數據庫數據的代碼我就不貼了,數據庫訪問我用的是newlife.xcoder,本系列不是一個入門教程,敬請諒解。
4. lbtnDelete_Click函數
這個函數也要注意修改權限的名字,刪除的核心還是用的newlife.xcoder,是不是很簡單的樣子。
5.txtPageNum_TextChanged函數和GetPageSize函數
這兩個函數的主要作用是設置一頁顯示多少條數據,主要是紅框框起來的name要保持一致。
6. 下面是前台html代碼的修改
- 這里前台html涉及的內容比較多,比較細,可能會漏掉一些東西,首先是head部分,除了title其他都不用修改,這里就不截圖了。
- 導航欄,修改一下中文顯示的文字即可
-
工具欄這里是加了一個新增的按鈕
7.前台列表綁定的修改
最重要的其實還是前台列表綁定的修改,用這樣的關鍵詞進行綁定
<%#Eval("PropertyNames")%>
至此后台的列表頁就完成了,還有其他一些沒能詳述的地方各位自己再修改一下即可。
二、后台詳情頁實現
同第一個列表頁,我們同樣需要從別的地方復制一個頁面過來,這里還是用友情鏈接的詳情頁,復制過來后修改一下命名空間。
1.詳情頁的pageload函數
詳情頁的pageload函數,和列表頁差不多,注意權限的字段修改下,其他的按照自己的邏輯,編輯的話就要綁定數據,新增的話直接展示頁面即可。
2.詳情頁的前端驗證
詳情頁后端不復雜,主要是前端驗證這里,碰到了一些問題這里提一下,數據庫有3個鏈接,但只有鏈接1是必填項,后面兩個可以填也可以不填,所以這里驗證非空可以用ignore的屬性。
這個屬性的來源是在頁面加載的時候調用了validform這個js組件,這個js驗證還是挺好用的,具體的使用方法可以搜索一下網上的教程。
3.單選多選框樣式
DTcms的后台用的單選多選框的風格還是比較好看的,那么自己寫一個單選多選框如何也能變成這種樣式呢?如下圖所示,注意紅框框起的地方,只要用div class為rule-multi-radio和rule-multi-checkbox包起來的單選和復選控件即可。
具體的實現是通過common.js里的初始化設置。
4.富文本編輯器
DTcms里用的富文本編輯器是kindeditor,頁面里用textarea包起來,設置class為editor,后台通過txtContent.Value來設置和讀取值
然后通過js來加載,這里uplaodjson和filemanagerjson都不用修改,只要設置對路徑即可,就能使用圖片上傳和圖片管理功能。
5. btnSubmit_Click函數
最后在搞定btnSubmit_Click函數做好保存和權限驗證即可。
至此,后台的列表頁和詳情頁都制作完成了