现在的位置: 首页 > 综合 > 正文

我的ext例子

2013年02月06日 ⁄ 综合 ⁄ 共 11438字 ⁄ 字号 评论关闭

 <div id = "grid1"></div>
  <div id = "grid2"></div>
  <div id = "tree1"></div>
  <div id = "tree2"></div>

 

 

Ext.QuickTips.init();
Ext.onReady(function() {

 var fields = ["address", "company", "name", "personid"];
 var pageSize = 5;

 function createForm() {
  var newForm = new Ext.form.FormPanel({
     frame : true,
     border : false,
     width : 400,
     labelAlign : 'right',
     defaults : {
      xtype : 'textfield',
      width : 150
     },
     items : [{
        name : 'name',
        fieldLabel : '姓名',
        allowBlank : false,
        blankText : '姓名不能为空'
       }, {
        name : 'address',
        fieldLabel : '地址',
        allowBlank : false,
        blankText : '地址不能为空'
       }, {
        name : 'company',
        fieldLabel : '公司',
        allowBlank : false,
        blankText : '公司名称不能为空'
       }, {
        name : 'personid',
        xtype : 'hidden'
       }]
    });
  return newForm;
 };

 var cm = new Ext.grid.ColumnModel([{
    header : "地址",
    dataIndex : "address",
    editor : new Ext.grid.GridEditor(new Ext.form.TextField({
       allowBlank : false
      }))
   }, {
    header : '公司',
    dataIndex : 'company',
    editor : new Ext.grid.GridEditor(new Ext.form.TextField({
       allowBlank : false
      }))
   }, {
    header : '姓名',
    dataIndex : 'name',
    editor : new Ext.grid.GridEditor(new Ext.form.TextField({
       allowBlank : false
      }))
   }, {
    header : '编号',
    dataIndex : 'personid'
   }]);

 function createJsonStroe(url, fields) {
  var storeTemp = new Ext.data.JsonStore({
     root : 'root',
     totalProperty : 'totalProperty',
     url : url,
     fields : fields
    });
  return storeTemp;
 };

 function createEditGridPanel(title, store, cm, sm, aftereditURL, addURL,
   delURL, editURL) {
  var gridTemp = new Ext.grid.EditorGridPanel({
     enableDragDrop : true,
     columnWidth : .4,
     title : title,
     store : store,
     cm : cm,
     sm : sm,
     autoWidth : true,
     autoHeight : true,
     viewConfig : {
  // forceFig:true
     },
     listeners : {
      "afteredit" : function(e) {
       Ext.Ajax.request({
          url : aftereditURL,
          params : {
           id : e.record.data.personid,
           field : e.field,
           value : e.value
          },
          success : function() {
           Ext.Msg.alert("提示", "修改成功!");
           gridTemp.store.reload();
          },
          failure : function() {
           Ext.Msg.alert("提示", "修改失败!");
           gridTemp.store.reload();
          }

         });
      }

     },

     bbar : new Ext.PagingToolbar({
        pageSize : pageSize,
        store : store,
        displayInfo : true,
        displayMsg : '显示第{0}条到{1}条记录,一共{2}条记录',
        emptyMsg : '没有记录',
        forceFit : true
       }),
     tbar : new Ext.Toolbar(['-', {
      text : "添加",
      handler : function() {
       var fm = createForm();
       var win = new Ext.Window({
          title : '添加用户',
          modal : true,
          width : 400,
          buttonAlign : 'center',
          items : [fm],
          buttons : [{
           text : '保存',
           handler : function() {
            if (fm.getForm().isValid()) {
             fm.getForm().submit({
              url : addURL,
              success : function() {
               gridTemp.store
                 .reload();
               win.close();
              },
              failure : function() {
               Ext.Msg
                 .alert(
                   "提示",
                   "添加数据出错,请稍后再试!");
              }
             });
            }
           }
          }, {
           text : '重置',
           handler : function() {
            fm.getForm().reset();
           }
          }, {
           text : '取消',
           handler : function() {
            win.close();
           }
          }]
         });
       win.show();
      }

     }, '-', {
      text : '删除',
      handler : function() {
       Ext.Msg.confirm('信息', '确定要删除?', function(btn) {
          if (btn == 'yes') {
           var selectRow = gridTemp
             .getSelectionModel()
             .getSelections();
           for (var i = 0; i < selectRow.length; i++) {

            var pId = selectRow[i]
              .get("personid");
            Ext.Ajax.request({
               url : delURL,
               params : {
                personId : pId
               },
               success : function() {
               }
              })
           }
           Ext.Msg.alert("提示", "删除成功!");
           gridTemp.getStore().reload();
          }
         })
      }
     }, '-', {
      text : '编辑',
      handler : function() {
       var fm = createForm();
       var record = gridTemp.getSelectionModel()
         .getSelections();
       if (record) {
        fm.getForm().loadRecord(record[0]);
        var win = new Ext.Window({
           title : '编辑用户',
           modal : true,
           width : 400,
           items : [fm],
           buttonAlign : 'center',
           buttons : [{
            text : '保存',
            handler : function() {
             fm.getForm().submit({
              url : editURL,
              success : function() {
               Ext.Msg.alert("提示",
                 "编辑成功!");
               gridTemp.store
                 .reload();
               win.close();
              },
              failure : function() {
               Ext.Msg.alert("提示",
                 "编辑失败!");
               win.close();
              }
             });
            }
           }, {
            text : '重置',
            handler : function() {
             fm.getForm().reset();
            }
           }, {
            text : '取消',
            handler : function() {
             win.close();
            }
           }]
          })
        win.show();
       }
      }
     }])
    });
  return gridTemp;
 };

 var store = createJsonStroe("person.do?method=personList", fields);
 var grid = createEditGridPanel("第一个表格", store, cm,
   new Ext.grid.RowSelectionModel({
      singleSelect : false
     }), "person.do?method=afterEdit",
   "person.do?method=savePerson", "person.do?method=deletePerson",
   "person.do?method=updatePerson");
 grid.render("grid1");
 store.load({
    params : {
     start : 0,
     limit : pageSize
    }
   });

 var store2 = createJsonStroe(
   "persondragtarget.do?method=persondragtargetList", fields);
 var grid2 = createEditGridPanel("第二个表格", store2, cm,
   new Ext.grid.RowSelectionModel({
      singleSelect : false
     }), "persondragtarget.do?method=afterEdit",
   "persondragtarget.do?method=savePersondragtarget",
   "persondragtarget.do?method=deletePersondragtarget",
   "persondragtarget.do?method=updatePersondragtarget");
 grid2.render("grid2");
 store2.load({
    params : {
     start : 0,
     limit : pageSize
    }
   });

 var ddrow1 = new Ext.dd.DropTarget(grid.view.mainBody, {
  ddGroup : 'GridDD',
  copy : false,
  notifyDrop : function(dd, e, data) {
   // 选中了多少行
   var rows = data.selections;
   // 拖动到第几行
   var index = dd.getDragData(e).rowIndex;
   if (typeof(index) == "undefined") {
    index = 0;
   }
   // 修改store
   for (i = 0; i < rows.length; i++) {
    var rowData = rows[i];
    if (!this.copy) {
     Ext.Ajax.request({
      url : 'persondragtarget.do?method=deletePersondragtarget',
      params : {
       personId : rowData.get("personid")
      },
      success : function() {
      }
     });
     store2.remove(rowData)
    }
    Ext.Ajax.request({
       url : 'person.do?method=savePerson',
       params : {
        name : rowData.get("name"),
        address : rowData.get("address"),
        company : rowData.get("company")
       },
       success : function() {
       },
       failure : function() {
       }
      });
    store.insert(index, rowData);
   }
  }
 });

 var ddrow2 = new Ext.dd.DropTarget(grid2.view.mainBody, {
  ddGroup : 'GridDD',
  copy : false,
  notifyDrop : function(dd, e, data) {

   if (e.getTarget() == grid2.view.mainBody) {
    alert("aaaa");
    return;
   }
   // 选中了多少行
   var rows = data.selections;
   // 拖动到第几行
   var index = dd.getDragData(e).rowIndex;
   if (typeof(index) == "undefined") {
    index = 0;
   }
   // 修改store
   for (i = 0; i < rows.length; i++) {
    var rowData = rows[i];
    if (!this.copy) {
     Ext.Ajax.request({
        url : 'person.do?method=deletePerson',
        params : {
         personId : rowData.get("personid")
        },
        success : function() {
        }
       });
     store.remove(rowData)
    }
    Ext.Ajax.request({
       url : 'persondragtarget.do?method=savePersondragtarget',
       params : {
        name : rowData.get("name"),
        address : rowData.get("address"),
        company : rowData.get("company")
       },
       success : function() {
       },
       failure : function() {
       }

      });
    store2.insert(index, rowData);
   }
  }
 });

 var root = new Ext.tree.AsyncTreeNode({
    id : '0',
    text : '我是根'
   });

 var tree1 = new Ext.tree.TreePanel({
    title : '第一个演示',
    el : 'tree1',
    root : root,
    loader : new Ext.tree.TreeLoader({
       dataUrl : 'tree.do?method=treeLoad'
      }),
    enableDrag : true,
    ddGroup : 'treePanelGrounp'
   });

 var panel3 = new Ext.Panel({
  columnWidth : .2,
  id : 'target',
  title : '树节点信息',
  height : 300,
  bbar : ['-', {
     text : '加到第一个表格',
     handler : function() {
      if (!panel3.body.child('table')) {
       alert("请从树中选择一条信息");
       return ;
      }
      var tds = Ext.query('#showMessage table td');
      var name = tds[0].innerHTML;
      var address = tds[1].innerHTML;
      var company = tds[2].innerHTML;
      Ext.Ajax.request({
         url : 'person.do?method=savePerson',
         params : {
          name : name,
          address : address,
          company : company
         },
         success : function() {
          Ext.Msg.alert("提示", "保存成功");
          Ext.get('showMessage').update("请将右边的树节点拖入panel");
          store.reload();
         },
         failure : function() {
          Ext.Msg.alert("提示", "保存失败");
         }
        });
     }
    }, '-', {
     text : '加到第二个表格',
     handler:function(){
     if (!panel3.body.child('table')) {
       alert("请从树中选择一条信息");
       return;
      }
      var tds = Ext.query('#showMessage table td');
      var name = tds[0].innerHTML;
      var address = tds[1].innerHTML;
      var company = tds[2].innerHTML;
      Ext.Ajax.request({
         url : 'persondragtarget.do?method=savePersondragtarget',
         params : {
          name : name,
          address : address,
          company : company
         },
         success : function() {
          Ext.Msg.alert("提示", "保存成功");
          Ext.get('showMessage').update("请将右边的树节点拖入panel");
          store2.reload();
         },
         failure : function() {
          Ext.Msg.alert("提示", "保存失败");
         }
        });
     }
    }, '-'],
  html : '<div id = "showMessage" style="height:270px" align="center">请将右边的树节点拖入panel</div><div id = "tbb" style="height:50px"></div>',
  afterRender : function() {
   Ext.Panel.prototype.afterRender.apply(this, arguments);
   this.dropTarget = this.body.child('div#showMessage');
   var t = new Ext.XTemplate('<table style="font-size:20"><tr><th>姓名:</th><td>"{name}"</td></tr>' +
     '<tr><th>公司:</th><td>{company}</td></tr>' +
     '<tr><th>地址:</th><td>{address}</td>' +
     '</table>');
     t.compile();
   var ddtg = new Ext.dd.DropTarget(this.dropTarget, {
    ddGroup : 'treePanelGrounp',
    notifyDrop : function(dd, e, node) {
     Ext.DomHelper.overwrite('showMessage','');
     t.append('showMessage',node.node.attributes);
//     var msg = '<table style="font-size:20px" > <tr><th>姓名:</th><td>'
//       + node.node.attributes.name
//       + '</td></tr>'
//       + '<tr><th>公司:</th><td>'
//       + node.node.attributes.company
//       + '</td></tr>'
//       + '<tr><th>地址:</th><td>'
//       + node.node.attributes.company
//       + '</td></tr>'
//       + '</table>';
//     panel3.body.child('div#showMessage').update(msg);
    }
   });
  }
 });

 var center = new Ext.TabPanel({
    region : 'center',
    activeTab : 0,
    items : [{
       layout : 'column',
       title : '表格基本功能',
       layoutConfig : {},
       items : [panel3, grid, grid2]
      }]

   });

 var west = new Ext.Panel({
    width : 200,
    region : 'west',
    layout : 'accordion',
    title : '演示向导',
    defaults : {},
    layoutConfig : {},
    items : [tree1, {
       title : '第三个演示',
       html : '第三个演示'
      }]
   });

 var view = new Ext.Viewport({
    layout : 'border',
    items : [{
       region : 'north',
       height : 80,
       html : 'north'
      }, west, center]
   });

});

 

 

抱歉!评论已关闭.