EasyUI ComboTree 非同步載入 ( .net 版 )

來源:互聯網
上載者:User

轉 http://www.cnblogs.com/mbailing/archive/2013/06/07/Combotree.html 

最近在做推廣資源管理系統中,進行了大量的資料分析、計算。本以為可以安心不理,奈何部門的下拉式清單總覺得不盡如人意。是我們湊合的結果:上菜

 

 

     看了是不是很糾結,如果所在公司部門少還好,一旦多起來,使用者必瘋。大家可能會問,為什麼要這樣做(一個字,懶!三個字,眾人懶)。大家懶到能用就成的地步。無奈之下我來解決。

 

     把百度都快搜爛了,發現 EasyUI Combotree能當此重任,隨下軍令狀。

 

     EasyUI Combotree 走你。

 

一、Combotree的資料載入方式有如下兩種:

 

  (1)、本機資料源載入

 

<input class="easyui-combotree" method='get' data-options="url:'../combotree/tree_data1.json',required:true" style="width:200px;">  

  注意: 大家可以看到,input控制項中我加了一個 method 屬性,值為get 。 如果不加的話,請求檔案的方式會被預設置為 'Post' ,但伺服器對於站內的 json,js尾碼檔案發起請求被視為不安全。(這是我自己的理解),所以將值設為get。

  這也是很多同學們在配置好了本機資料檔案後,combotree依然無法顯示內容的原因。

  順便加上 Post 和 Get 的區別

  1. get是從伺服器上擷取資料,post是向伺服器傳送資料。

  2. get是把參數資料隊列加到提交表單的ACTION屬性所指的URL中,值和表單內各個欄位一一對應,在URL中可以看到。post是通過HTTP post機制,將表單內各個欄位  與其內容放置在HTML HEADER內一起傳送到ACTION屬性所指的URL地址。使用者看不到這個過程。

  3. 對於get方式,伺服器端用Request.QueryString擷取變數的值,對於post方式,伺服器端用Request.Form擷取提交的資料。

  4. get傳送的資料量較小,不能大於2KB。post傳送的資料量較大,一般被預設為不受限制。但理論上,IIS4中最大量為80KB,IIS5中為100KB。

  5. get安全性非常低,post安全性較高。但是執行效率卻比Post方法好。
  建議:   1、get方式的安全性較Post方式要差些,包含機密資訊的話,建議用Post資料提交方式;

  2、在做資料查詢時,建議用Get方式;而在做資料添加、修改或刪除時,建議用Post方式;

  (2)、非同步載入

 

  在介紹本機資料載入的時候,我們沒有談到資料來源的資料格式,現在我說明一下。格式為json,屬性有id,test,children。當然,id和test的屬性你可以自訂。下面是非同步載入的js代碼。

 

 

$(function () {        $('#selDepartmentFrom').combotree            ({ url: '../Views/DownLoad.aspx?ExportType=getDepartment',                valueField: 'id',                textField: 'text',                required: true,                editable: false,                onClick: function (node) {                      JJ.Prm.GetDepartmentUser(node.id, 'selUserFrom');                }, //全部摺疊                onLoadSuccess: function (node, data) {                    $('#selDepartmentFrom').combotree('tree').tree("collapseAll");                 }        });  });

View Code

 

  (3)、後台代碼

 

/// <summary>        /// 擷取部門        /// </summary>        private void GetDepartment()        {            string result = string.Empty;            //949表示領導層級的查看許可權  不是領導的只能查看本部門資訊            var loginUserInfo = AuthCommon.GetUserOUInfo();            if (AuthCheck.CheckOperator(949, "EffectPage") == DicCheckOperator.Invalid)                result= AuthCommon.GetOUJsonByOUID(loginUserInfo.OUID);            else                result = AuthCommon.GetOUJson();            Response.ContentType = "text/json;charset=UTF-8;";            Response.Write(result);        }

View Code

  以json的格式返回,GetOUJson() 這個是我擷取部門的方法 ,由於 是調用別人的webservice,所以,代碼就不寫了。但資料格式是 id,text,children

  children中的屬性值依然是id,text,children。

 

  至於 如何將List<T>轉成json,大家可以在百度下。

 

  (4)、combotree實現部門下拉式清單的效果如下:

 

  

 

  關於 combotree 在.net中的非同步載入,網上資料不大好找,希望這篇部落格對大家有用。歡迎轉載。我是jerry 百靈。

  記得頁面中別忘記引用  jquery.js 和  jquery.easyui.min.js  ,對了,還有easyui.css。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.