首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

Ext Js Grid 编者 新增 删除 保存的一个小示例

2012-07-28 
Ext Js Grid 编辑 新增 删除 保存的一个小示例文章转自http://tiantiankaixin.iteye.com/blog/743228?Ext

Ext Js Grid 编辑 新增 删除 保存的一个小示例

文章转自http://tiantiankaixin.iteye.com/blog/743228

?

Ext Js Grid 编辑 新增 删除 保存的一个小示例 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Paging</title>      <link rel="stylesheet" type="text/css" href="css/ext-all.css" />         <script type="text/javascript" src="ext-base.js"></script>     <script type="text/javascript" src="ext-all.js"></script>       <script type="text/javascript" src="edit-grid-paging.js"></script>     <link rel="stylesheet" type="text/css" href="grid-examples.css" />     <link rel="stylesheet" type="text/css" href="examples.css" />      </head> <body> <script type="text/javascript" src="examples.js"></script> <div id="topic-grid"></div> </body> </html> edit-grid-paging.js Ext.onReady(function(){        Ext.QuickTips.init();         var authereditor = Editgridselect.init();//自定义下拉列表 数据取自数据库返回的Json          var Plant = Ext.data.Record.create([                            {name: 'title', type: 'string'},            {name: 'forumtitle', type: 'string'},            {name: 'forumid'},            {name: 'author', type: 'string'},            {name: 'replycount', type: 'int'},            {name: 'lastpost', mapping: 'lastpost', type: 'date', dateFormat: 'timestamp'},            {name: 'lastposter'},            {name: 'excerpt'},            {name: 'threadid'}       ]);          var store = new Ext.data.Store({               proxy: new Ext.data.ScriptTagProxy({ //支持跨域获取数据                                 url: 'http://extjs.com/forum/topics-browse-remote.php'                  }),               reader: new Ext.data.JsonReader({                              root: 'topics',                totalProperty:'totalCount',                id: "threadid"                           }, Plant)     })          store.setDefaultSort('lastpost', 'desc');     // pluggable renders     /*     function renderTopic(value, p, record){         return String.format(                 '<b>{0}</b><a href="http://extjs.com/forum/forumdisplay.php?f={3}" target="_blank">{1} Forum</a>',                 value, record.data.forumtitle, record.id, record.data.forumid);     }     */     function renderTopic(value, p, record){         return String.format(                 '<b>{0}</b>',                 value, record.data.forumtitle, record.id, record.data.forumid);     }     function renderLast(value, p, r){         return String.format('{0} by {1}', value.dateFormat('M j, Y, g:i a'), r.data['lastposter']);     }          function examineflag(value){         return value ? '是' : '否';       };                 // 顶部工具栏按钮     var contrltar = [{                         text: '添加',                         handler : function(){                                                 var p = new Plant({                                                                 title: '',                                                                 forumtitle:'',                                                                 forumid:'',                                                                 author: '',                                                                 replycount: 0,                                                                 lastpost: (new Date()).clearTime(),                                                                                                                                 lastposter:'',                                                                 excerpt:'新内容'                                                                 });                                              //var n = ds.totalLength;                                             grid.stopEditing();                                             store.insert(0,p);      //ds.insert(n, p);                                             grid.startEditing(0,1); //grid.startEditing(n, 0);                                                                     }                     },{                         text: '删除',                         handler : function(){                                   var gcm = grid.getSelectionModel();                             var rows = gcm.getSelections();                             if(rows.length>0){                                 for (var i = 0; i < rows.length; i++) {                                                         var row = rows;                                                         var data = row.data;                                                                                                                 alert(row.data.threadid);                                                         store.remove(row);                                 }                             }else{                                 Ext.Msg.alert('提示','请选择要删除的记录');                             }                                                                                   }                     }];     //底部工具栏按钮     var pagingBar = new Ext.PagingToolbar({         pageSize: 10,         store: store,         beforePageText:'当前页',         afterPageText:'共{0}页',         firstText:'首页',         lastText:'尾页',         nextText:'下一页',         prevText:'上一页',         refreshText:'刷新',         displayInfo: true,         displayMsg: '显示{0} - {1}条 共{2}条记录',         emptyMsg: "无记录显示",                  items:[             '-', {             pressed: true,             enableToggle:true,             text: '查看详情',             //cls: 'x-btn-text-icon details',             toggleHandler: function(btn, pressed){                     var view = grid.getView();                                         view.showPreview = pressed;                        view.refresh();             }         }]     });          var checkbox = new Ext.grid.CheckboxSelectionModel();          var cm = new Ext.grid.ColumnModel([             checkbox,             {                 id: 'topic', // id assigned so we can apply custom css (e.g. .x-grid-col-topic b { color:#333 })                 header: "主题",                 dataIndex: 'title',                 width: 320,                 renderer: renderTopic,                 sortable: true,                 editor: new Ext.form.TextArea({                                     allowBlank: false,                                     blankText:'请输入主题'                            })             },{                 header: "作者",                 dataIndex: 'author',                 width: 100,                 //hidden: true,                 sortable: true,                 editor: authereditor                              },{                 header: "回复数",                 dataIndex: 'replycount',                 width: 70,                 align: 'right',                 sortable: true,                 editor: new Ext.form.TextField({                                     allowBlank: false                            })             },{                 id: 'last',                 header: "最后发表",                 dataIndex: 'lastpost',                 width: 150,                 renderer: renderLast,                                 sortable: true,                 editor: new Ext.form.DateField({                                             format: 'm/d/y',                                             minValue: '01/01/06',                                                disabledDays: [0, 6],                                             disabledDaysText: '周末不能选'                     })             },{            header: "审核否",            dataIndex: 'indoor',            width: 55,            renderer: examineflag,            editor: new Ext.grid.GridEditor(new Ext.form.Checkbox())         }                 ]);          var grid = new Ext.grid.EditorGridPanel({                       store: store,         renderTo: 'topic-grid',         cm: cm,               width:980,         id:'egridpanel',         height:550,         title:'编辑表格',             autoExpandColumn:'common',         clicksToEdit:1,//设置点击几次才可编辑         frame:true,         sm:checkbox,         loadMask: true,//装载动画                 stripeRows:false,//条纹         //autoHeight: true,//一定要写,否则显示的数据会少一行           //selModel: new Ext.grid.RowSelectionModel({singleSelect:true}),//设置单行选中模式, 否则将无法删除数据                            // customize view config         viewConfig: {             forceFit:true,             enableRowBody:true,                         //showPreview:true,             showPreview:true,             getRowClass : function(record, rowIndex, p, store){                 //if(this.showPreview){                 if(!this.showPreview){                         p.body = '<p>'+record.data.excerpt+'</p>';                     return 'x-grid3-row-expanded';                 }                 return 'x-grid3-row-collapsed';             }         },         tbar: contrltar,             bbar: pagingBar     });     grid.on("afteredit", afteredit, grid);//监听编辑后事件         store.load({params:{start:0, limit:10}});          function afteredit(e){             // e.column;//修改的列,数字类型         // e.row;//修改过的行从0开始         //e.originalValue;//原始值         //e.value;//新值                 var data     = e.record.data;         // 显示等待对话框         Ext.Msg.wait("请等候", "修改中", "操作进行中...");         var id    = data.threadid;       //"threadid"为返回Json数据的字段名                      Ext.Msg.alert('您成功修改了文章信息', "被修改的内容是:" + e.value + "\n 修改的字段是:"             + e.field+"; id是:"+id);// 取得用户名             }          }); Ext.ux.SliderTip = Ext.extend(Ext.Tip, {     minWidth: 10,     offsets : [0, -10],     init : function(slider){         slider.on('dragstart', this.onSlide, this);         slider.on('drag', this.onSlide, this);         slider.on('dragend', this.hide, this);         slider.on('destroy', this.destroy, this);     },     onSlide : function(slider){         this.show();         this.body.update(this.getText(slider));         this.doAutoWidth();         this.el.alignTo(slider.thumb, 'b-t?', this.offsets);     },     getText : function(slider){         return slider.getValue();     } }); Ext.grid.CheckColumn = function(config){     Ext.apply(this, config);     if(!this.id){         this.id = Ext.id();     }     this.renderer = this.renderer.createDelegate(this); }; Ext.grid.CheckColumn.prototype ={     init : function(grid){         this.grid = grid;         this.grid.on('render', function(){             var view = this.grid.getView();             view.mainBody.on('mousedown', this.onMouseDown, this);         }, this);     },     onMouseDown : function(e, t){         if(t.className && t.className.indexOf('x-grid3-cc-'+this.id) != -1){             e.stopEvent();             var index = this.grid.getView().findRowIndex(t);             var record = this.grid.store.getAt(index);             record.set(this.dataIndex, !record.data[this.dataIndex]);         }     },     renderer : function(v, p, record){         p.css += ' x-grid3-check-col-td';         return '<div class="x-grid3-check-col'+(v?'-on':'')+' x-grid3-cc-'+this.id+'"> </div>';     } }; Ext.namespace('Editgridselect'); Editgridselect.init = function (){     var fm = Ext.form, Ed = Ext.grid.GridEditor;             var RecordDef = Ext.data.Record.create([                 {name: 'formname'},{name: 'formid'}                           ]);         var groupStore=new Ext.data.Store({ proxy: new Ext.data.HttpProxy({url: 'autherselect.php'}),                        reader: new Ext.data.JsonReader({id:"sn",root:'datalist'},RecordDef ),                           remoteSort: true });           groupStore.load();         var combox = new Ext.form.ComboBox({                typeAhead: true,mode : 'local', selectOnFocus : true,                forceSelection : true ,triggerAction: 'all',                store:groupStore, hiddenName:'formname',                valueField : 'formid',displayField : 'formname',                      lazyRender:true,listeners: { select: function() {this.setValue(combox.getRawValue()); }                  }               });          var editor = new Ed(combox);                  return editor; } 服务器端: autherselect.php <?php header("Content-Type: text/plain; charset=utf-8"); $select = array('datalist'=>array( array('formname'=>'张三','formid'=>"SCZL"), array('formname'=>'李四','formid'=>"ZLBGV"), array('formname'=>'王五','formid'=>"fagg"), array('formname'=>'Dvaid','formid'=>"fhdf"), array('formname'=>'Rocky','formid'=>"rocky") ) ); echo json_encode($select); //echo "([{'formname':'Java','formid':'java'},{'formname':'EXTJS','formid': 'extjs'}])"; ?> 

?

热点排行
Bad Request.