赞
踩
- var grid = Ext.create('Ext.tree.Panel', {
- store:Ext.create('Ext.data.TreeStore', {
- autoLoad:true,
- model: 'home.menu',
- root:{
- menu_id:0,
- menu_name:'ROOT'
- },
- proxy:{
- type:'ajax',
- api:{
- create:'create.action',
- update:'update.action',
- read:'read.action',
- destroy:'destroy.action'
- },
- reader:{
- root:'result',
- totalProperty:'totalCount'
- }
- }
- }),

上面代码的意思是在store中定义当我们对store进行add(),updaterecord(),load(),remove()四个操作时相对应的操作URL。下面是extjsAPI里面的定义
- api : Object
-
- 指定的urls中所调用的CRUD,即"create","read","update"和"destroy"操作方法。默认为:
-
- api: {
- create : undefined,
- read : undefined,
- update : undefined,
- destroy : undefined
- }
-
- 该url的生成基于使用对应的api属性中所执行[create|read|update|destroy]的动作action, 或者如果为undefined则默认为已配置的 Ext.data.Store.url。
-
- 示例:
-
- api: {
- create : '/controller/new',
- read : '/controller/load',
- update : '/controller/update',
- destroy : '/controller/destroy_action'
- }
-
- 如果指定的URL对于所给定CRUD动作为undefined, 那么CRUD的action请求将指向已配置的url。

下面是使用的DEMO、
修改(update U):
- form.getForm().updateRecord(form.getForm().getRecord());
- grid.getStore().sync();
删除(destory D)
- var r = form.getForm().getRecord();
- r.remove();
- grid.getStore().sync();
加载(Read R )
grid.getStore().load();
- grid.getStore().add(form.getForm().getValues());
- grid.getStore().sync();
- 不懂大家注意到了没有 在CUD操作后,都有一个sync()操作。如果在store中设置了autoSync:true的话。就可以省略sync()操作。下面是autoSync的API解释:
- autoSync : Boolean
-
-
-
-
-
- 'true'表示每当对一条Record记录完成修改后, 都将对Store与Proxy进行同步. 默认为'false'.
-
- Defaults to: false
-
-
-
-
最后还有一点需注意的是:除了R是get请求外,CUD操作传到后台的数据都是以字符流的形式传输的。不是以post/get的方式传输的。所以在后台接收的时候,需要注意。下面给出一段PHP接收CUD传送的数据的代码:
- public function getPut()
- {
- $raw = '';
- $fp = fopen('php://input', 'r');
- while ($kb = fread($fp, 1024)) {
- $raw .= $kb;
- }
- $params = json_decode($raw, true);
- if (count($params) && !isset($params[0])) {
- $params = array($params);
- }
- $_POST['php_input'] = $raw;
- return $params;
- }
基本上CRUD的操作的注意点都在这里了。不足的我会慢慢补充,求指正
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。