`
linwei_211
  • 浏览: 191350 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

gridpanel动态加载数据的例子

阅读更多
<script type='text/javascript'>

function editEsOrder(options,success,response){
if (success){
var tagModelManager_maxOrderIdJson=Ext.util.JSON.decode(response.responseText);
var orderValue = tagModelManager_maxOrderIdJson.maxOrderId ;
Ext.getCmp('esorder').setValue(orderValue) ;
}
}

var tagModelManager_toolBar=new Ext.Toolbar({
items:[
{id:'tagModel_Save',text:'添加',iconCls:'add',handler:tagModel_Save}
,'-',
{id:'tagModel_dropSelected',text:'删除',iconCls:'remove',handler:tagModel_dropSelected}
]});

new Ext.grid.GridPanel({
id:'tagModelManager_tagModelGrid',
autoScroll:true, store:new Ext.data.Store(),
cm:new Ext.grid.ColumnModel([new Ext.grid.RowNumberer()]),
sm:new Ext.grid.CheckboxSelectionModel(),
renderTo:'tagModelManager_tagModelDiv',
        width:Ext.getCmp('TagModel_win').getSize().width-16,
        height:Ext.getCmp('TagModel_win').getSize().height-35,
hideHeaders :false,
loadMask:{msg:'正在加载数据,请稍候....'},
collapsible : true,
collapsed : false,
bbar:new Ext.PagingToolbar({
id:'tagModelManager_tagModelPagingBar',
pageSize:getComboValue(),
store:new Ext.data.Store(),
displayInfo:true
}),
tbar:tagModelManager_toolBar
});
Ext.getCmp('tagModelManager_tagModelGrid').render() ;
Ext.getCmp('tagModelManager_tagModelGrid').on('rowdblclick', tagModelSelectRowDblClickEvent);
function tagModelSelectRowDblClickEvent(selectionModel, rowIndex, selectedRecord) {
  var selectedRows = Ext.getCmp('tagModelManager_tagModelGrid').getSelectionModel().getSelections();
      var row=selectedRows[0];   
      tagModel_SaveOrEdit('edit',row);
}
function tagModel_Save() {
      tagModel_SaveOrEdit('save');
}
function tagModelList_search() {
  Ext.Ajax.request({
  url:'editTagModel.html?method=getParams',
   callback:getSearchList
   });
}
function getSearchList(options,success,response) {
if (success){
var tagModelManager_json=Ext.util.JSON.decode(response.responseText);
tagModelManager_tagModelGridTitle = tagModelManager_json.tagModelManager_tagModelGridTitle;
var record = tagModelManager_json.record ;
var tagModelManager_tagModelColumnModels = tagModelManager_json.tagModelManager_tagModelColumnModels ;
        var tagModelManager_tagModelColumnModel=new Ext.grid.ColumnModel(Ext.util.JSON.decode("["+"new Ext.grid.RowNumberer()"+","+"new Ext.grid.CheckboxSelectionModel()"+","+tagModelManager_tagModelColumnModels+"]"));
tagModelManager_tagModelColumnModel.defaultSortable=true;
var strucutreModelManager_tagModelDataStore = new Ext.data.Store({
         baseParams: { tagModelKeyword : Ext.getCmp('tagModelManager_search_button').el.dom.value.trim() },
proxy:new Ext.data.HttpProxy({
url:'editTagModel.html?method=getTagModelDataList'
}),
reader:new Ext.data.JsonReader({
totalProperty:'resultSize',root:'tagModelList'},Ext.util.JSON.decode(record)) });
Ext.getCmp('tagModelManager_tagModelPagingBar').bind(strucutreModelManager_tagModelDataStore);
strucutreModelManager_tagModelDataStore.load({params:{start:0,limit:getComboValue()}}) ;
Ext.getCmp('tagModelManager_tagModelGrid').setTitle(tagModelManager_tagModelGridTitle) ;
Ext.getCmp('tagModelManager_tagModelGrid').reconfigure(strucutreModelManager_tagModelDataStore,tagModelManager_tagModelColumnModel);
Ext.getCmp('tagModelManager_tagModelGrid').expand(false) ;
}
}
function tagModelList_all(){
Ext.Ajax.request({
url:'editTagModel.html?method=getParams',
callback:getTagModel
});
}
function getTagModel(options,success,response){
if (success){
var tagModelManager_json=Ext.util.JSON.decode(response.responseText);
tagModelManager_tagModelGridTitle = tagModelManager_json.tagModelManager_tagModelGridTitle;
var record = tagModelManager_json.record ;
var tagModelManager_tagModelColumnModels = tagModelManager_json.tagModelManager_tagModelColumnModels ;
        var tagModelManager_tagModelColumnModel=new Ext.grid.ColumnModel(Ext.util.JSON.decode("["+"new Ext.grid.RowNumberer()"+","+"new Ext.grid.CheckboxSelectionModel()"+","+tagModelManager_tagModelColumnModels+"]"));
tagModelManager_tagModelColumnModel.defaultSortable=true;
var strucutreModelManager_tagModelDataStore = new Ext.data.Store({
proxy:new Ext.data.HttpProxy({
url:'editTagModel.html?method=getTagModelDataList'
}),
reader:new Ext.data.JsonReader({
totalProperty:'resultSize',root:'tagModelList'},Ext.util.JSON.decode(record)) });
Ext.getCmp('tagModelManager_tagModelPagingBar').bind(strucutreModelManager_tagModelDataStore);
strucutreModelManager_tagModelDataStore.load({params:{start:0,limit:getComboValue()}}) ;
Ext.getCmp('tagModelManager_tagModelGrid').reconfigure(strucutreModelManager_tagModelDataStore,tagModelManager_tagModelColumnModel);
Ext.getCmp('tagModelManager_tagModelGrid').expand(false) ;
}
}
Ext.Ajax.request({
url:'editTagModel.html?method=getParams',
callback:getTagModel
});

</script>


    public void getTagModelDataList(ActionMapping mapping, ActionForm actionform,HttpServletRequest request, HttpServletResponse response){
    ITagModelManager tagmgr = this.getPkgServer().getDriver().getOperateServer().getTagModelManager() ;
    List<HashMap<String,String>> models = new ArrayList<HashMap<String,String>>();
    String tagModelKeyword = request.getParameter("tagModelKeyword");
    List<EssTagModel> tagModels ;
    tagModels =  tagmgr.getEssTagModels() ;
   
    int resultSize = 0 ;
   
    if (null != tagModels && !tagModels.isEmpty()){
    //数据分页显示
    resultSize = tagModels.size() ;
    String start = request.getParameter("start") ;
String perPage = request.getParameter("limit") ;
String esType ="";
if (null != start && null != perPage){
int fromIdx = Integer.parseInt(start);
int per =  Integer.parseInt(perPage);
int toIdx = fromIdx + per ;
if (toIdx  > resultSize) toIdx = resultSize ;
tagModels = tagModels.subList(fromIdx,toIdx) ;
}
    for(EssTagModel etm : tagModels){
    HashMap<String,String> map = new HashMap<String, String>();
    map.put("id",   Long.toString(etm.getId())) ;
    map.put("esidentifier", etm.getEsidentifier()) ;

    map.put("estype", etm.getEstype()) ;
    map.put("esdescription", etm.getEsdescription()) ;
    map.put("esorder", Long.toString(etm.getEsorder())) ;
    map.put("metadata", etm.getMetadata()) ;
    models.add(map) ;
    }
    }
   
    JSONObject json = new JSONObject();
    JSONArray ary = new JSONArray(models);
    json.put("tagModelList", ary);
json.put("resultSize",resultSize);
    writeJson(response, json.toString()) ;
    }

public void getParams(ActionMapping mapping, ActionForm actionform,HttpServletRequest request, HttpServletResponse response){

LinkedHashMap<String,String> tags = new LinkedHashMap<String,String>() ;
tags.put("id", "id") ;
tags.put("esidentifier", "字段") ;
tags.put("estype", "类型") ;
tags.put("esdescription", "描述") ;
tags.put("esorder", "顺序") ;
tags.put("metadata", "元数据") ;
tags.put("esisnull", "是否为必填项") ;
tags.put("eslength", "字段长度") ;
tags.put("esdotlength", "小数点位数") ;
tags.put("esissystem", "是否为系统字段") ;

JSONObject json = new JSONObject();
json.put("record", getJsonRecord(tags)) ;
json.put("tagModelManager_tagModelColumnModels", getJsonColumnModel(tags)) ;
writeJson(response,json.toString());
}
分享到:
评论

相关推荐

    Ext的gridpanel控件二次加载问题

    2. 在需要时动态加载和卸载GridPanel,通过Ext JS的容器系统实现。 3. 如果数据更新频繁,可以考虑使用Store的buffered rendering特性,减少内存占用和渲染压力。 4. 对于复杂的配置,可以将它们分离到单独的配置...

    gridpanel动态加载数据的实例代码

    在本文中,我们将深入探讨如何使用`GridPanel`在Ext JS框架中实现动态加载数据的实例。`GridPanel`是Ext JS中一个强大的组件,它用于显示和操作表格数据。动态加载数据是一种优化性能的策略,它允许在用户滚动或需要...

    ExtJS 表格面板GridPanel完整例子

    - **Ajax数据加载**: 如果数据不在本地,我们需要设置store的proxy来从服务器拉取数据。 - **分页**: 使用`pagingToolbar`插件实现分页功能,设置`pageSize`和`proxy`的`reader`配置。 - **排序与过滤**: `sortable`...

    extjs动态生成表格,前台+后台

    在我们的例子中,我们将看到如何通过JavaScript代码来动态构建GridPanel。 在前端部分,HTML代码设置了必要的资源引用,包括CSS样式表和ExtJS的JavaScript库。`&lt;div id="grid_div"&gt;&lt;/div&gt;`这部分是用来放置...

    简单的EXT加载数据的例子

    在这个例子中,“简单的EXT加载数据的例子”可能是指如何动态地从服务器获取数据并加载到Treepanel中。 1. **创建Treepanel** 创建Treepanel时,我们需要指定一些基本配置,如ID、标题、宽度、高度等。此外,还...

    extjs gridpanel例子和简单应用

    本文将通过一个具体的例子来详细介绍ExtJS中`GridPanel`的基本用法以及如何利用`HttpProxy`、`JsonReader`、`Store`等关键对象来构建动态数据展示界面。 #### 二、核心概念介绍 1. **HttpProxy** - `HttpProxy`是...

    EXTJSEXT实例GridPanel.

    在EXTJS中,你需要定义fields来指定数据结构,并通过loadData或配置远程代理(如AjaxSource)来加载数据。 ```javascript var store = new Ext.data.Store({ fields: ['name', 'email', 'phone'], data: [ { ...

    extjs中Ext.Panel和TreePanel 组件动态加载本地页面数据

    在实际项目中,结合`jq`库(可能是jQuery的简写),可以方便地处理DOM操作,与EXTJS的组件交互,进一步增强动态加载的效果,比如添加动态加载的动画、错误处理等。 总结来说,`Ext.Panel`和`TreePanel`在EXTJS中是...

    Ext GridPanel 中实现加链接操作

    Ext GridPanel 是该框架中的一个重要组件,常用于展示表格数据。本文将详细介绍如何在 Ext GridPanel 中实现加链接操作,包括基本原理、代码实现及注意事项。 #### 一、Ext GridPanel 基础 在了解如何添加链接之前...

    Extjs2.0动态加载gird的例子

    在这个例子中,我们将探讨如何在ExtJS 2.0中实现动态加载的Grid组件,这是一个非常实用的功能,尤其对于处理大量数据时,可以显著提高用户体验。 动态加载Grid意味着数据不是一次性全部加载到页面中,而是根据用户...

    Ext2.2.GridPanel分页处理+dwrproxy(js对象和json两种数据)

    同时,GridPanel的分页工具栏(PagingToolbar)会自动根据用户的操作更新这些参数,从而实现动态加载数据。 总结一下,本话题介绍了如何在Ext2.2的GridPanel中实现分页处理,利用DWRProxy与后台进行数据交互。无论...

    Ext3.2源码、API、及Demo(grid例子)

    在grid例子中,你可能会看到如何使用Store来加载和保存数据,如何定义ColumnModel来设置列头,以及如何实现行的编辑功能。此外,EXT3.2的事件系统使得我们可以轻松监听用户的交互行为,如点击、双击或编辑单元格,...

    extjs表格(表格后台数据读,分页),树(后台数据读取,复选框联动)的基本操作示例

    在这个例子中,GridPanel被用来从后台动态加载数据,并实现分页。后台数据读取通常涉及Ajax请求,通过Ext.Ajax或Store对象与服务器进行通信。分页功能通过配置Store的proxy和paging参数实现,如设置`autoLoad`为true...

    ext精典例子(增删改查)

    2. **读取(Read)**:EXT的GridPanel组件是显示数据集的常用方式,它可以连接到数据源并通过Store进行数据加载。使用Ajax,我们可以从服务器获取JSON格式的数据,然后填充到Store中,进而更新GridPanel的展示。 3....

    Extjs4 GridPanel 的几种样式使用介绍

    通过`dataIndex`属性,我们可以将列头与数据模型的字段关联起来,实现数据的动态展示。此外,`sortable: true`设置使得用户可以通过点击列头对数据进行排序。 ```javascript var datas = [['1', 'gao', 'man'], ['2...

    ext grid 动态扩展

    - 当动态添加列时,应确保新列的数据源已经存在于数据存储中,或者在服务器端处理逻辑中添加相应的字段。 通过以上步骤,我们可以实现 `Ext Grid` 的动态扩展功能,使得在运行时可以根据需求灵活调整列的数量和...

    EXT学习小例子

    在这个例子中,Store可能已经预加载了数据,这样当项目恢复后,用户就能立即看到数据。 2. **数据绑定**:EXTJS采用MVC(Model-View-Controller)架构模式,通过数据绑定机制将Model中的数据实时同步到View上。这...

    ExtJs学习资料22-从服务器获取JSON数据并分页处理.doc

    还可以添加事件监听器,例如在数据加载完成后触发的回调函数,以便进行进一步的处理或提示用户。 这个简单的示例展示了如何利用ExtJs从服务器获取JSON数据,并使用分页策略在GridPanel中显示。在实际项目中,你可能...

    extjs+php分页例子

    5. **事件监听**:在ExtJS的GridPanel中,可以监听`load`事件来更新UI,显示新加载的数据。同时,分页条会根据store的状态自动更新,用户可以通过点击页码或使用导航按钮切换页面。 6. **自定义分页栏**:如果需要...

Global site tag (gtag.js) - Google Analytics