ExtJs 实现动态加载grid完整示例_extjs

Ext3.3完整包

Ext3.3中文文档

数据表的结构是:数据表table > 记录record > 字段

store的结构是: Ext.data.Store > Ext.data.Record>Ext.dataDataField

store 首先驱动 DataProxy 加载数据 ,DataProxy加载完成会驱动 DataReader时行解析,最终获得Record对象。

1.bean :

复制代码 代码如下:

package com.leo.bean;

public class Person {
private String name;
private int age;
private String sex;
private String birthday;

public Person(String name, int age, String sex, String birthday) {
super();
this.name = name;
this.age = age;
this.sex = sex;
this.birthday = birthday;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public int getAge() {
return age;
}

public void setAge(int age) {
this.age = age;
}

public String getSex() {
return sex;
}

public void setSex(String sex) {
this.sex = sex;
}

public String getBirthday() {
return birthday;
}

public void setBirthday(String birthday) {
this.birthday = birthday;
}

}

2.action

复制代码 代码如下:

package com.leo.action;

import java.util.ArrayList;
import java.util.List;

import com.leo.bean.Person;
import com.opensymphony.xwork2.ActionSupport;

public class ExtjsAction extends ActionSupport {
private long results;
private List items;

public long getResults() {
return results;
}

public void setResults(long results) {
this.results = results;
}

public List getItems() {
return items;
}

public void setItems(List items) {
this.items = items;
}

public String execute() throws Exception {
this.results = 3;
Person p1 = new Person("张三", 29, "男", "1990-10-22");
Person p2 = new Person("李四", 28, "男", "1991-03-30");
Person p3 = new Person("王五", 27, "女", "1993-08-17");
this.items = new ArrayList<Person>();
this.items.add(p1);
this.items.add(p2);
this.items.add(p3);

return SUCCESS;
}
}

3.struts-xml

复制代码 代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN"
"http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<include file="struts-default.xml" />
<package name="/json" namespace="/" extends="json-default">
<action name="extjsaction" class="com.leo.action.ExtjsAction">
<result type="json">

</result>
</action>
</package>
</struts>

4.xml

复制代码 代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_9" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>

<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>

</web-app>

5.jsp

复制代码 代码如下:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>ExtJs与Struts2结合</title>
<link rel="stylesheet" href="ext-3.1.1/resources/css/ext-all.css" type="text/css"></link>
<script type="text/javascript" src="ext-3.1.1/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="ext-3.1.1/ext-all.js"></script>
<script type="text/javascript">
Ext.onReady(function() {
var store = new Ext.data.JsonStore({
url:'json/extjsaction.action',//返回的是DataProxy对象
root:'items',
fields:['name','age','sex','birthday']
});
store.load();
var grid = new Ext.grid.GridPanel({
store:store,
viewConifg:{
forceFit:true
},
columns:[
{header:'姓名',dataIndex:'name'},
{header:'年龄',dataIndex:'age'},
{header:'性别',dataIndex:'sex'},
{header:'生日',dataIndex:'birthday'}
]
});
var win = new Ext.Window({
title:'store ',

width:600,
height:400,
layout:'fit',//这个是布局
items:grid
});
win.show();
});
</script>
</head>
<body>
</body>
</html>

图示:

时间: 2024-09-29 16:46:41

ExtJs 实现动态加载grid完整示例_extjs的相关文章

extjs中动态加载机制研究

昨天我们team对于extjs的动态加载机制做了些深入研究,这里先share下controller加载的结果. 以service registry portlet为例: 比如,在 liferay-portlet.xml中定义了: 所以我们的js的入口点是app.js,这其中创建了Ext.application并且声明了动态加载controller: Ext.application({ name: 'serviceRegistry', appFolder: '/serviceregistrypor

extjs在动态加载的时候,数据冲掉了

问题描述 extjs在动态加载的时候,数据冲掉了 leftRender:function(p){ var ii=0; for(var i=0;i<3;i++){ var panel = Ext.create( 'Ext.panel.Panel', { id: 'temp_id_'+i, title: 'temp_title_'+i, border: false, layout: 'fit', listeners: { beforerender: function (p2, animate, eO

extjs无限制滚动条加载Grid行数据怎样实现

问题描述 extjs无限制滚动条加载Grid行数据怎样实现 解决方案 解决方案二:滚动加载的插件,看看能不能和extjs结合起来用解决方案三:extjs4的demo里面自带有这样的例子extjs3也有插件可以实现我以前找到用过忘记叫什么了

JS获取浏览器语言动态加载JS文件示例代码_javascript技巧

项目出于多语言版本的考虑,前台使用easyui,通过获取浏览器语言版本,来相对的加载easyui语言包,easyui默认语言包en-US 代码如下 <script type="text/javascript"> //ie if (navigator.browserLanguage != "undefined" && navigator.browserLanguage != null) { if (navigator.systemLangu

从XML中动态加载菜单的示例

本文配套源码 这个案例是一个基于VS2005的WinForm菜单控件的例子,功能是从XML中动态加载菜单数据到MenuTrip控件上.这个案例中用到了XML,反射之类的技术.当然实用价值有限,仅供学习参考之用. 首先创建一个WinForm项目,在Form1上放置一个MenuTrip控件,将其命名为MainMenu. 在项目中添加一个XML文件,命名为Menu.xml,代码如下: MenuXml 1<?xml version="1.0" encoding="utf-8&q

关于extjs中TabPanel加载grid问题?急!急!!!!! 在线等

问题描述 Ext.onReady(function(){Ext.QuickTips.init();//浮动信息提示Ext.BLANK_IMAGE_URL='../../../js/extjs/resources/images/default/s.gif';//替换图片文件地址为本地//alert(Ext.BLANK_IMAGE_URL);//创建一个简写varTree=Ext.tree;//定义根节点的Loadervartreeloader=newTree.TreeLoader({//dataU

extjs desktop 动态加载模块问题!

问题描述 官方例子是getModules : function() {return [new MyDesktop.GridWindow(), new MyDesktop.TabWindow(),new MyDesktop.AccordionWindow(),new MyDesktop.BogusMenuModule(),new MyDesktop.BogusModule()];}, 但是正常开放的时候一定不是全部模块都一起加载,我想应该是把所有模块的图标先放到桌面上,在点击shortcut的时候

JS获取浏览器语言动态加载JS文件示例代码

 项目出于多语言版本的考虑,前台使用easyui,通过获取浏览器语言版本,来相对的加载easyui语言包,easyui默认语言包en-US 代码如下 1 2 3 4 5 6 7 8 9 10 11 12 13 14 <script type="text/javascript">  //ie  if (navigator.browserLanguage != "undefined" && navigator.browserLanguage

Android利用universal-image-loader异步加载大量图片完整示例

MainActivity如下: package cc.testlistview; import java.util.ArrayList; import com.example.testlistview.R; import com.nostra13.universalimageloader.cache.disc.naming.Md5FileNameGenerator; import com.nostra13.universalimageloader.core.ImageLoader; import