天天看點

CYQ.Data 快速開發EasyUIEasyUI:EasyUI 易遇到的坑:CYQ.Data 快速開發EasyUI:補充:界面UI的HTML代碼總結:

前端ui架構之一, 相對extjs來說,算是小了,這兩天,抽空看了下easyui的相關知識,基本上可以和大夥分享一下:

學習的話,基本上思路就三個:

一個是demo,把所有提供的controls看一遍,然後用到哪個,就去看哪個。

一個是document,如果某個控件需要用js編碼控制,可能需要看一下相關的api提供的屬性,事件和方法。

一個是搜相關的文章,看看一些網上的示例或教程文章。

由于easyui是基于jq的文法,是以最好備有jq的api手冊。 

如下圖,折騰基本的增删改查+分頁(費了我不少時間,遇到幾個坑):

CYQ.Data 快速開發EasyUIEasyUI:EasyUI 易遇到的坑:CYQ.Data 快速開發EasyUI:補充:界面UI的HTML代碼總結:

基本用法,可以看官網的demo,這裡說下我遇到的幾個問題:

一開始由于不知道表格的需要的預設json格式,是以隻能動态綁定資料,大體代碼如下:

$.getjson("json.ashx",function(result){$("#dg").datagrid("loaddata",result.data);}

然後又要另外把記錄總數賦給分頁控件:

$.getjson("json.ashx",function(result){$("#dg").datagrid("loaddata",result.data);$("#db").datagrid("gerpager").pagination({"total":result.count});}

折騰了n久後,發現了json的格式,隻要輸出的json格式按它的要求,隻要指定url就可以了,分頁控件也會自動綁定,輸出的格式為:

CYQ.Data 快速開發EasyUIEasyUI:EasyUI 易遇到的坑:CYQ.Data 快速開發EasyUI:補充:界面UI的HTML代碼總結:

{"total":"42","errormsg":"","success":"true","rows":[{"id":"1","username":"22222","createtime":"2012/9/27 17:13:52"},{"id":"2","username":"2","createtime":"2012/9/27 17:12:05"},{"id":"3","username":"1","createtime":"2013/4/18 18:18:22"},{"id":"7","username":"ttttttttttt","createtime":"2012/9/27 17:15:33"},{"id":"8","username":"ttttttt","createtime":""},{"id":"9","username":"999","createtime":""},{"id":"10","username":"2222","createtime":""},{"id":"11","username":"333","createtime":""},{"id":"12","username":"44","createtime":""},{"id":"13","username":"55","createtime":""}]}

CYQ.Data 快速開發EasyUIEasyUI:EasyUI 易遇到的坑:CYQ.Data 快速開發EasyUI:補充:界面UI的HTML代碼總結:

其中total和rows數組是标配字段名,剛好cyq.data背景表格的輸出代碼是count和data,名稱不一緻,為了更友善支援easyui,隻好把輸出名改成一緻了。

當通過以下代碼指定請求url時,發現請求發送了2次:

CYQ.Data 快速開發EasyUIEasyUI:EasyUI 易遇到的坑:CYQ.Data 快速開發EasyUI:補充:界面UI的HTML代碼總結:

 $(function () {

                $("#dg").datagrid({

                    "url": "json.ashx",

                    "pagination":true

                });

            });

CYQ.Data 快速開發EasyUIEasyUI:EasyUI 易遇到的坑:CYQ.Data 快速開發EasyUI:補充:界面UI的HTML代碼總結:

後來尋得,把html中的class去掉即可。

 <table id="dg" title="my users" class="easyui-datagrid"

 變更為:

 <table id="dg" title="my users" 

為了與easyui配合的更友善,我對cyq.data架構的jsonhelper這個類小小調整了幾個小點,使的開發更爽了一些。 

前端按easyui的demo,而後端代碼可以寫成通殺式代碼如下:

CYQ.Data 快速開發EasyUIEasyUI:EasyUI 易遇到的坑:CYQ.Data 快速開發EasyUI:補充:界面UI的HTML代碼總結:

 public string outjson(string tname, int pageindex, int pagesize, string where)

        {

            string json = string.empty;

            using (maction action = new maction(tname))

            {

                json=action.select(pageindex, pagesize, where).tojson();//輸出的格式直接迎合easyui

            }

            return json;

        }

CYQ.Data 快速開發EasyUIEasyUI:EasyUI 易遇到的坑:CYQ.Data 快速開發EasyUI:補充:界面UI的HTML代碼總結:

一個url過來,根據參數指定表名和條件直接傳回,通殺。

CYQ.Data 快速開發EasyUIEasyUI:EasyUI 易遇到的坑:CYQ.Data 快速開發EasyUI:補充:界面UI的HTML代碼總結:
CYQ.Data 快速開發EasyUIEasyUI:EasyUI 易遇到的坑:CYQ.Data 快速開發EasyUI:補充:界面UI的HTML代碼總結:

public string updateorinsert(string tname,int id) //預設easyui會自動post資料過來,這裡采用自動取值。

            bool result = false;

                if (id > 0)

                {

                    result=action.insert(true);

                }

                else

                    result=action.update(id, true);

            return jsonhelper.outresult(result, result ? "" : "操作失敗!");//新增的方法,配合easyui需要的儲存提示。

CYQ.Data 快速開發EasyUIEasyUI:EasyUI 易遇到的坑:CYQ.Data 快速開發EasyUI:補充:界面UI的HTML代碼總結:
CYQ.Data 快速開發EasyUIEasyUI:EasyUI 易遇到的坑:CYQ.Data 快速開發EasyUI:補充:界面UI的HTML代碼總結:
CYQ.Data 快速開發EasyUIEasyUI:EasyUI 易遇到的坑:CYQ.Data 快速開發EasyUI:補充:界面UI的HTML代碼總結:

 public string delete(string tname, int id)

               result = action.delete(id);

            return jsonhelper.outresult(result, result ? "" : "操作失敗!");

CYQ.Data 快速開發EasyUIEasyUI:EasyUI 易遇到的坑:CYQ.Data 快速開發EasyUI:補充:界面UI的HTML代碼總結:

基本背景屬于小調整就可以通殺了,基礎的crud開發起來還是相當簡單的。

CYQ.Data 快速開發EasyUIEasyUI:EasyUI 易遇到的坑:CYQ.Data 快速開發EasyUI:補充:界面UI的HTML代碼總結:

view code 

1:easyui這個前端架構還是不錯的,雖然商業使用是需要付費的,但是對公司來說小錢,而且多數小公司根本沒打算交錢。

2:cyq.data 經過小調整,能夠更簡便的支援easyui開發。

3:如果你是用的開源版本v4.55,若需要支援easyui,jsonhelper類的輸出,把count變為total,把data改成rows即可。 

本文原創發表于部落格園,作者為路過秋天,原文連結:http://www.cnblogs.com/cyq1162/p/3297892.html

繼續閱讀