`

新建可翻页 Ext Grid

阅读更多
js 代码
 
  1. <script type="text/javascript" language="javascript">   
  2.   var v = this;  
  3.   while(v.parent){  
  4.     v = v.parent;  
  5.     if(v == v.parent) {  
  6.       break;  
  7.   }  
  8. }  
  9. var SearchDialog = v.Agideo.Page.SearchDialog;  
  10. </script>  
  11. <script type="text/javascript">  
  12.   var SearchGrid = function() {  
  13.     var cm, ds, grid, btns, toolbar;  
  14.     var fnCallBack = function() {  
  15.       if(ds.getCount() > 0) {  
  16.         grid.getSelectionModel().selectFirstRow();  
  17.         btns.btn_choose.setDisabled(false);  
  18.       }  
  19.     };  
  20.     var setValueForParent = function() {  
  21.       var desc = grid.getSelectionModel().getSelected().data["desc"].replace(/<br\/>/g, "\r\n");  
  22.       switch('<%= params[:c].downcase %>') {  
  23.         case 'shipper':  
  24.           SearchDialog.setShipper(desc);  
  25.           break;  
  26.         case 'consignee':  
  27.           SearchDialog.setConsignee(desc);                
  28.           break;  
  29.         case 'notifyparty':  
  30.           SearchDialog.setNotifyParty(desc);  
  31.           break;  
  32.         default:  
  33.           break;  
  34.       }  
  35.     };  
  36.   
  37.     return {  
  38.       init : function() {  
  39.         if(!ds) {  
  40.           ds =  new Ext.data.Store({  
  41.             proxy: new Ext.data.ScriptTagProxy({  
  42.               url: '<%= url_for(:controller => "booking_notes", :action => "get_search_json", :c => params[:c]) %>'  
  43.             }),  
  44.             baseParams: {q : ''},  
  45.             reader: new Ext.data.JsonReader({  
  46.               root: 'records',  
  47.               totalProperty: 'total',  
  48.               id: 'id'  
  49.             },[{  
  50.               name: 'desc', mapping: 'desc'  
  51.             }])  
  52.           })  
  53.         }  
  54.         if(!cm) {  
  55.           cm = new Ext.grid.ColumnModel([{  
  56.             header: '<%= l(:field_description) %>',  
  57.             dataIndex: 'desc',  
  58.             sortable: true  
  59.           }]);  
  60.           cm.defaultSortable = true;  
  61.         }  
  62.         if(!grid) {  
  63.           grid = new Ext.grid.Grid('search_result_grid', {  
  64.             ds: ds,  
  65.             cm: cm,  
  66.             selModel: new Ext.grid.RowSelectionModel({  
  67.               singleSelect: true  
  68.             }),  
  69.             enableColLock: false,  
  70.             monitorWindowResize: true,  
  71.             fitToFrame:true,  
  72.             loadMask: true,  
  73.             height: 418,  
  74.             autoSizeColumns: true  
  75.           });  
  76.         }  
  77.         grid.on("dblclick"function(e) {  
  78.           setValueForParent();  
  79.         });  
  80.         grid.render();  
  81.           
  82.         var gridFoot = grid.getView().getFooterPanel(true);  
  83.         var paging = new Ext.PagingToolbar(gridFoot, ds, {  
  84.           pageSize: 10,  
  85.           displayInfo: true,  
  86.           displayMsg: 'Displaying records {0} - {1} of {2}',  
  87.           emptyMsg: "No records to display"  
  88.         });  
  89.   
  90.         var gridHeader = grid.getView().getHeaderPanel(true);  
  91.         toolbar = new Ext.Toolbar(gridHeader);  
  92.         toolbar.add('<input id="search_question" onkeypress="if(event.keyCode == 13){ SearchGrid.clickSearchButton(); }">', {  
  93.           id: 'btn_search',  
  94.           text: '<%= l(:button_search) %>',  
  95.           icon: '/images/search_button.gif',  
  96.           pressed: false,  
  97.           repeat: false,  
  98.           cls: "x-btn-text-icon",  
  99.           handler: function() {  
  100.             SearchGrid.reload(Ext.getDom('search_question').value);  
  101.           }  
  102.         }, {  
  103.           id: 'btn_choose',  
  104.           text: '<%= l(:button_ok) %>',  
  105.           disabled: true,  
  106.           icon: '/images/ok.png',  
  107.           pressed: false,  
  108.           repeat: false,  
  109.           cls: "x-btn-text-icon",  
  110.           handler: function() {  
  111.             setValueForParent();  
  112.           }  
  113.         });  
  114.         if(!btns) {  
  115.           btns = toolbar.items.map;  
  116.         }  
  117.         SearchGrid.reload('');  
  118.       },  
  119.       reload : function(q) {  
  120.         ds.baseParams.q = q;  
  121.         ds.load({  
  122.           params:{  
  123.             start: 0, limit: 10  
  124.           },  
  125.           callback: fnCallBack  
  126.         });  
  127.       },  
  128.       clickSearchButton : function() {  
  129.         btns.btn_search.handler();  
  130.       }  
  131.     };  
  132.   }();  
  133.   Ext.onReady(function(){  
  134.     SearchGrid.init();  
  135.   });  
  136. </script>  
  137. <div id="search_result_grid" style="clear:both; height:100%;"></div>  
分享到:
评论
2 楼 dingdangxiaoma 2007-09-22  
 
1 楼 forgetdavi 2007-09-09  
这样写代码是不是很累?

相关推荐

    Ext grid中渲染进度条,超帅 源码-----下载不扣分,回帖加1分,欢迎下载,童叟无欺。

    Ext grid中渲染进度条,超帅 源码-----下载不扣分,回帖加1分,欢迎下载,童叟无欺。Ext grid中渲染进度条,超帅 源码-----下载不扣分,回帖加1分,欢迎下载,童叟无欺。Ext grid中渲染进度条,超帅 源码-----下载不扣分...

    Ext Grid 导出Excel

    Ext Grid是Sencha Ext JS框架的一部分,它允许开发者创建可配置的表格视图,可以显示从服务器获取的数据。这些数据通常通过Ajax请求加载,然后由Grid的Store进行管理。Store可以与各种数据源(如JSON、XML)配合,...

    jq-extgrid v1.2 表格插件

    extgrid 是一款jquery上的gird插件 界面风格采用了类似easyui extjs 界面风格样式 可通过css修改自己想要的样式 extgrid具有列大小 位置改变 排序 分组 分页 工具栏 扩展行 rowNumber 多选列 编辑列 行列锁 ajax...

    ext grid 导出 excel

    在EXT(Ext JS)框架中,EXT Grid是一个强大的数据展示组件,它允许用户以表格的形式显示大量数据。在实际业务场景中,有时我们需要将EXT Grid中的数据导出为Excel文件,以便于分析、存储或共享。这个过程涉及到EXT ...

    一个很好的EXTGRID实例

    2. **列配置**:EXTGRID允许自定义列,包括列宽、标题、对齐方式、可排序性等,可以展示不同类型的数据,如文本、数字、日期等。 3. **分页**:EXTGRID支持分页功能,用户可以轻松浏览大量数据,提高性能。 4. **...

    ext grid 合并行

    在EXT JS框架中,Grid组件是一种非常常用的展示数据表格的方式,它提供了丰富的功能和灵活性。在某些场景下,用户可能需要合并行或列以更好地组织和呈现数据,例如在显示汇总信息或者创建复杂的报告时。"ext grid ...

    ext grid json分页显示

    EXT Grid具有高度可定制性,支持列排序、筛选、分页等功能,使得用户界面更加友好。 分页是EXT Grid的重要特性之一,它可以有效地管理大量数据,避免一次性加载所有数据导致的性能问题。EXT Grid通常与服务器进行...

    Ext grid与树实例

    Ext Grid和Tree是Ext JS库中的两种重要组件,它们在Web应用开发中广泛用于数据展示和组织。Ext JS是一个强大的JavaScript框架,它提供了一系列高级UI组件,帮助开发者构建功能丰富的、交互性强的Web应用程序。 首先...

    Ext grid 分页实例源码

    Ext grid PagingToolbar分页实例源码Ext grid PagingToolbar分页实例源码Ext grid PagingToolbar分页实例源码Ext grid PagingToolbar分页实例源码

    EXT grid导出EXCEL

    3. **转换为SheetJS可读格式**:将EXT Grid的数据转换为SheetJS理解的二维数组格式。每一行代表store中的一条记录,每列对应记录的一个字段。 4. **创建工作簿**:使用SheetJS创建一个新的工作簿,并添加工作表。...

    Ext grid 导出Excel

    "Ext grid 导出Excel"是一个常见需求,它涉及到了JavaScript库Ext JS中的数据网格组件(Ext Grid)与Microsoft Excel文件格式的交互。下面我们将深入探讨这个主题。 首先,Ext JS是一个强大的JavaScript UI框架,它...

    ext grid 显示数据

    在EXT JS这个强大的JavaScript框架中,Grid组件是用于展示大量结构化数据的核心组件。"ext grid 显示数据"这一主题,是深入理解EXT JS开发的关键知识点之一,特别是在处理表格和列表展示时。在"LearningExtJS 第五...

    Ext grid导出excel

    支持Ext3 Ext4导出excel,客户端导出表格,支持各种主流浏览器。

    ext grid数据绑定

    在EXT JS这个强大的JavaScript框架中,EXT Grid是一个非常重要的组件,用于展示大量结构化数据,并提供了丰富的交互功能。本文将深入探讨"EXT Grid数据绑定"这一主题,包括数据查找和如何将查找结果重新填充到Grid中...

    Ext Grid表格的自动宽度及高度的实现

    在探讨“Ext Grid表格的自动宽度及高度的实现”这一主题时,我们深入解析如何在Ext JS框架下,利用其强大的Grid组件自适应容器尺寸,实现表格宽度与高度的自动调整。这一技术对于构建响应式、用户友好的界面至关重要...

    ext grid tree 应用

    在EXT JS框架中,"ext grid tree 应用"是一个常见的功能组合,它结合了Grid面板和Tree面板的优势,用于展示复杂的数据结构。Grid通常用于显示二维表格数据,而Tree则用于展示层次化的数据。在这个例子中,开发者通过...

    Ext grid 简单实例

    Ext Grid是Ext JS库中的一个核心组件,用于展示和操作数据集。在Web应用程序中,它经常被用来作为数据表格,允许用户查看、排序、筛选和编辑数据。在这个"Ext Grid简单实例"中,我们将探讨如何从Web服务提取数据并将...

    Ext grid panel 滚动条位置不变

    ### Ext grid panel 滚动条位置不变 在前端开发领域,特别是在使用Ext JS框架时,保持滚动条位置不变是一个非常实用的功能。特别是在处理实时数据更新的场景下,这一功能可以确保用户在数据刷新后仍然停留在之前...

    ext grid 合计行

    找了半天,结果在extjs的老家找到一个前辈写的代码,可以在grid上面加上合计, &lt;br&gt;但是却只能合计grid里面的数据,但是我们平常一般是只显示20行或者30行,这样的合计就没有什么意义,我们的合计数据是单独从...

    ext grid网格控件实例

    EXT Grid控件是EXT JS库中的一个核心组件,它用于创建功能丰富的数据网格,能够高效地展示和操作大量数据。EXT Grid广泛应用于J2EE框架中,为Web应用提供了强大的数据展示和交互能力。在本实例中,我们将探讨四种...

Global site tag (gtag.js) - Google Analytics