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

    南京中博教育

    全國咨詢電話:17368476151

    三分鐘了解中博教育
    當前位置:南京中博教育 > 學習園地 > 編程技巧

    EXTJS中的表格控件

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

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

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

    北大青鳥軟件學校職業教育

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

    北大青鳥軟件學校職業教育

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

    以及動態的修改提交等功能:
    北大青鳥軟件學校職業教育

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


    分享到:
    近期文章

    搶試聽名額

    名額僅剩66名

    教育改變生活

    WE CHANGE LIVES

    主站蜘蛛池模板: 久久综合五月丁香久久激情| 亚洲色婷婷综合久久| 色综合久久久久无码专区| 久久婷婷五月国产色综合| 制服丝袜人妻综合第一页| 国产成人综合亚洲绿色| 久久88色综合色鬼| 久久桃花综合桃花七七网 | 色综合视频一区二区三区| 色综合天天综合网看在线影院| 久久久久噜噜噜亚洲熟女综合| 激情综合亚洲色婷婷五月| 亚洲国产综合人成综合网站| 久久综合五月婷婷| 综合国产精品第一页| 精品国产天堂综合一区在线| 亚洲欧洲国产综合| 伊人丁香狠狠色综合久久| 精品久久人人做人人爽综合 | 日本伊人色综合网| 国产成人综合色视频精品| 久久婷婷色香五月综合激情| 亚洲综合在线观看视频| 亚洲另类激情综合偷自拍图| HEYZO无码综合国产精品| 国产成人综合久久精品免费| 久久亚洲精品高潮综合色a片| 亚洲精品第一国产综合野| 久久久亚洲裙底偷窥综合| 久久婷婷激情综合色综合俺也去| 伊人久久大香线蕉综合影| 久久久久久综合一区中文字幕 | 国产成人综合久久精品尤物| 一本一道久久a久久精品综合| 久久影院综合精品| 亚洲成AV人综合在线观看| 久久综合久久久久88| 五月综合色婷婷影院在线观看| 四月婷婷七月婷婷综合| 色欲色香天天天综合VVV| 久久综合狠狠综合久久97色|