1. <bdo id="8zfej"></bdo>
    <li id="8zfej"><meter id="8zfej"><th id="8zfej"></th></meter></li>

    南京北大青鳥

    全國咨詢電話:15195455103

    三分鐘了解北大青鳥
    當前位置:南京北大青鳥 > 學習園地 > 編程技巧

    EXTJS中的表格控件

    來源:南京北大青鳥張府園校區(qū)? ? ? 作者:IT教育 ? ??

    網(wǎng)絡編程語言中,除了.net其他的基本沒有提供網(wǎng)格控件,而近的asp.net mvc也不倡議使用傳統(tǒng)的服務器控件,綁定數(shù)據(jù)需要自己拼表格,所以兼容各種語言的表格控件就變得流行起來。

    網(wǎng)絡編程語言中,除了.net其他的基本沒有提供網(wǎng)格控件,而近的asp.net mvc也不倡議使用傳統(tǒng)的服務器控件,綁定數(shù)據(jù)需要自己拼表格,所以兼容各種語言的表格控件就變得流行起來。
    本章我們主要學習:
    如何定義一個網(wǎng)格控件;
    如何綁定網(wǎng)格控件;
    一、Ext的表格控件是什么?
    同樣先來看看幾個效果:

    北大青鳥軟件學校職業(yè)教育

    這個是基本的表格,Ext中的表格基本的功能就是按列排序,按列篩選,定制列等。當然還有一些特有的功能:

    北大青鳥軟件學校職業(yè)教育

    可以對每行數(shù)據(jù)進行收縮,也可以點擊右上角小三角收縮整個表格控件。
    還可以很方便的進行分頁操作:
    北大青鳥軟件學校職業(yè)教育

    以及動態(tài)的修改提交等功能:
    北大青鳥軟件學校職業(yè)教育

    二、Ext如何構造網(wǎng)格?
    表格控件其實也就是幫我們完成了數(shù)據(jù)的填充工作而已,具體的數(shù)據(jù)源、要顯示的列,列的定制、數(shù)據(jù)源中的哪條數(shù)據(jù)顯示在哪個列中等屬性還是需要我們自己手動配置的,所以我們分下面幾步來完成網(wǎng)格控件的數(shù)據(jù)綁定:
    1、定義表格:定義一個表格比較簡單,只需要new幾個列即可,帶上列的名稱和要綁定的數(shù)據(jù),定義列代碼如:
    var cm = new Ext.grid.ColumnModel([ { header: '編號', dataIndex: 'id' }, { header: '性別', dataIndex: 'sex' }, { header: '名稱', dataIndex: 'name' }, { header: '描述', dataIndex: 'desc' } ]);
     
    用header指定列名,用dataIndex指定數(shù)據(jù)源,也就是字段名。這樣一個基本的表格就定義好了。
    2、創(chuàng)建數(shù)據(jù)源:
    一般數(shù)據(jù)源都是以集合的形式存在,這里使用一個2維數(shù)組來實現(xiàn):
    var data = [ ['1', '男', '張三豐', '是個作家'], ['2', '男', '石曼迪', '會武功'], ['3', '男', '姜子牙', '能捉鬼'], ['4', '女', '穆桂英', '好像是皇帝'], ['5', '男', '孫悟空', '高級程序員'] ];
     
    如果熟悉JS或者PHP的話,對這段代碼就不陌生,定義一個數(shù)組,這個數(shù)組的每一個位置又存儲了一個數(shù)組。用他來作為靜態(tài)數(shù)據(jù)源。
    3、解析數(shù)據(jù)源:
    表格創(chuàng)建完畢,數(shù)據(jù)源也定義完畢,接下來就需要創(chuàng)建他們之間的關系,即配置分組數(shù)據(jù)集,使用的是創(chuàng)建一個Ext.data.Store對象,通過它我們可以把任何格式的數(shù)據(jù)轉(zhuǎn)化成grid可以使用的形式。其中需要告訴他的參數(shù)比較多,先看代碼,后面解釋:
    var ds = new Ext.data.Store({ proxy: new Ext.data.MemoryProxy(data), reader: new Ext.data.ArrayReader({}, [ { name: 'id' }, { name: 'sex' }, { name: 'name' }, { name: 'desc' } ]) }); ds.load();
     
    proxy:的含義是告訴表格從哪里取數(shù)據(jù),可選的方式有HttpProxy、DataProxy、MemoryProxy或ScriptTagProxy。本例我們告訴他從內(nèi)存中取數(shù)據(jù),數(shù)據(jù)來自名字叫data的數(shù)組。
    reader:reader告訴我們?nèi)绾谓馕鲞@個數(shù)據(jù),他可選的方式有Ext.data.ArrayReader,Ext.data.JsonReader。本例使用的是Ext.data.ArrayReader,第一個參數(shù)是id (可選項) 下面的行數(shù)組內(nèi)提供了該記錄的id(不明白什么意思,試驗是有沒有都一樣),后面參數(shù)含義就很明確了,就是剛才創(chuàng)建表格時定義的字段名,他的特點是讀取數(shù)據(jù)比較簡單,但是有個缺點就是不支持分頁。
    后千萬別忘了初始化數(shù)據(jù)操作調(diào)用Store對象的load方法。
    4、裝配表格
    表格的列模型定義好了,原始數(shù)據(jù)和數(shù)據(jù)的轉(zhuǎn)換都做好了,剩下的只需要裝配在一起,我們的grid就出來了,先上代碼,再研究:
    var grid = new Ext.grid.GridPanel({ el: 'grid', ds: ds, cm: cm, height:200, width:500 }); grid.render();
     
    其實就是實例化一個表格面板控件,用來裝表格。第一個參數(shù)是指定在哪里顯示,總得在頁面的某個部分或位置顯示出來,Ext提供了控制div的做法,由于div很靈活,現(xiàn)在網(wǎng)頁布局多采用他,所以需要在哪里顯示出來,只需要把相應的div的id指定給他即可。下面2個參數(shù)很明白,就是我要裝載的數(shù)據(jù)源叫什么,我裝載到哪里去等等的。后也別忘了調(diào)用grid.render()方法,讓grid開始渲染,就是畫界面等等的,這樣才能顯示出來。
    好了,到此為止一個簡單的表格控件就完成了,我們來看看完整代碼:
    <script type="text/javascript"> function GridBasic() { //1. 定義表格 var cm = new Ext.grid.ColumnModel([ { header: '編號', dataIndex: 'id' }, { header: '性別', dataIndex: 'sex' }, { header: '名稱', dataIndex: 'name' }, { header: '描述', dataIndex: 'desc' } ]); //2. 創(chuàng)建數(shù)據(jù)源 var data = [ ['1', '男', '張三豐', '是個作家'], ['2', '男', '石曼迪', '會武功'], ['3', '男', '姜子牙', '能捉鬼'], ['4', '女', '穆桂英', '好像是皇帝'], ['5', '男', '孫悟空', '高級程序員'] ]; //3. 解析數(shù)據(jù)源 var ds = new Ext.data.Store({ proxy: new Ext.data.MemoryProxy(data), reader: new Ext.data.ArrayReader({}, [ { name: 'id' }, { name: 'sex' }, { name: 'name' }, { name: 'desc' } ]) }); ds.load(); //4. 裝配表格 var grid = new Ext.grid.GridPanel({ el: 'grid', ds: ds, cm: cm, height:200, width:500 }); grid.render(); } Ext.onReady(GridBasic); //開始執(zhí)行 </script>
     
    現(xiàn)在我們自己親手做的Ext表格控件已經(jīng)完美的展示在我們眼前,但是仔細一看之后發(fā)現(xiàn),剛才說的排序功能并不能點,怎么辦?
    很簡單:在定義表格的時候后面帶上一個屬性sortable:true即可,即:
    { header: '編號', dataIndex: 'id', sortable: true },
     
    哪列需要就給那列加上即可。


    分享到:
    近期文章

    搶試聽名額

    名額僅剩66名

    教育改變生活

    WE CHANGE LIVES

    主站蜘蛛池模板: 狠狠色噜噜狠狠狠狠色综合久AV | 婷婷色香五月综合激激情| 天天做天天爱天天综合网| 少妇熟女久久综合网色欲| 亚洲国产综合专区在线电影| 色综合久久精品中文字幕首页 | 色天天综合色天天碰| 91精品国产综合久久婷婷| 99久久综合给久久精品| 亚洲国产综合无码一区二区二三区| 亚洲国产成人精品无码久久久久久综合| 麻豆精品久久精品色综合| 色综合天天综合狠狠| 97久久国产综合精品女不卡| 久久久久久久综合狠狠综合| 国产一级a爱做综合| 亚洲国产成人久久综合| 婷婷久久香蕉五月综合加勒比| 狠狠色噜噜狠狠狠狠色综合久AV | 久久影视综合亚洲| 婷婷激情狠狠综合五月| 色综合久久久久无码专区| 伊人性伊人情综合网| 色噜噜狠狠色综合久| 色综合一区二区三区| 伊人色综合久久天天五月婷| 开心五月激情综合婷婷| 久久综合色天天久久综合图片 | 97久久天天综合色天天综合色hd| 香蕉久久综合精品首页| 色综合天天色综合| 一本一道久久a久久精品综合| 亚洲欧洲国产综合AV无码久久| 五月天激情综合网| 亚洲av成人综合网| 亚洲国产精品综合久久20| 中文字幕人成无码人妻综合社区| 亚洲综合激情六月婷婷在线观看| 激情综合亚洲色婷婷五月 | 色成年激情久久综合| 色综合久久中文字幕|