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());

  }