<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-9  評論-168  文章-266  trackbacks-0

    //功能:根據(jù)輸入的編碼傳給后臺分析,回傳所需的數(shù)據(jù)及數(shù)據(jù)自定義的列格式,列名,查詢分頁等

    var columns = new Array(); // 創(chuàng)建一個(gè)數(shù)組對象.

    // ............查詢控件...................
    // ------面板1...列表選擇查詢控件1--------
    var queryselect = new Ext.form.ComboBox({
     fieldLabel : '查詢選擇', // UI標(biāo)簽名稱
     name : 'queryselect', // 作為form提交時(shí)傳送的參數(shù)
     //allowBlank : false, // 是否允許為空
     readOnly : true, // 是否只讀
     mode : 'local', // 數(shù)據(jù)模式,local為本地模式
     triggerAction : 'all', // 顯示所有下列數(shù).必須指定為'all'
     anchor : '90%',
     // typeAhead : true,
     emptyText : "請選擇查詢模式...",// queryselect.getSize(),
     listWidth : 150, // 下拉列表寬,一般不需設(shè)置即等同COMBOBOX寬度,這里有未知問題,必須設(shè)置.
     valueField : 'value', // 傳送的值
     displayField : 'text',// 列表選擇控件里的UI列表顯示的文本
     store : new Ext.data.SimpleStore({ // 填充的數(shù)據(jù)
      fields : ['value', 'text'],
      data : [['mxbbh', '明細(xì)表編號'], ['ljmch', '零件名稱']]
     })
    });

    // ------面板1...查詢控件2--------
    var querytext = new Ext.form.TextField({
     name : 'queryvalue',
     //allowBlank : false,
     emptyText : '輸入查詢內(nèi)容',
     fieldLabel : '查詢',
     anchor : '100%'
    });

    // ------查詢...面板1--------
    var queryform = new Ext.FormPanel({
     // width : 300,

     // url : './querybean/query.jsp',
     labelAlign : 'top', // 與控件一起定義的文本相對于控件的位置.
     collapsible : true,
     title : '查詢',
     frame : true,
     autoHeight : true,
     layout : 'form', // form定義在column里,不然與控件一起定義的文本顯示不出來.
     items : [queryselect, querytext],
     buttons : [{
      text : '提交',
      handler : function() {
       if (queryform.getForm().isValid())
        queryform.getForm().submit
          // Ext.Ajax.request
          ({
           url : './querybean/query.jsp',
           params : {
            command : 'query',
            start : 0,
            limit : 10
           },
           watiMsg : '查詢中...請等待',
           success : function(res, v) {
            var json = Ext.util.JSON
              .decode(v.response.responseText);

            // var a1 = [{
            // name : 'ljh',
            // type : 'string'
            // }, {
            // name : 'ljmch',
            // type : 'string'
            // }];
            // var storetem = new Ext.data.JsonStore({
            // url : './querybean/query.jsp',
            // totalProperty : 'total',
            // root : 'root',
            // fields : a1,
            // baseParams : {
            // queryselectvalue : queryselect
            // .getValue(),
            // queryvalue : querytext.getValue()
            // }
            // // pruneModifiedRecords : true
            // });

            // querygrid.
            // store = storetem;
            // a = a1;
            // var root=new Array();
            // Ext.apply(a, a1);
            // Ext.apply(store, storetem);
            // querygrid.store.commitChanges();

            // querygridtoolpage.bind(querygrid.store);
            // store = querygrid.store;

            // store.loadData(json);

            Ext.apply(columns, json.columns);// 將第二個(gè)對象中的所有屬性復(fù)制到第一個(gè)對象中,第三個(gè)參數(shù)對象為設(shè)置默認(rèn)值.
            columns[0] = eval(columns[0]);
            for (var i = 1; i < columns.length; i++)
             // 執(zhí)行string中的new表達(dá)式轉(zhuǎn)換為對象
             columns[i].editor = eval(columns[i].editor);
            cm.setConfig(columns);
            store.loadData(json);

            // queryform.getForm().reset();
            // store.reload();

            // querytext.getValue().toString();

            // store.load(
            // { // 加載查詢面板數(shù)據(jù)
            // //由于是表單提交,所以字段值自動提交,且不執(zhí)行STORE的beforeload事件
            // params : {
            // command:'query',
            // queryvalue : querytext.getValue(),
            // start : 0,
            // limit : 10
            // }
            // }
            // ); // 加載數(shù)據(jù)源
           }
          })
      }
     }, {
      text : '重置',
      handler : function() {
       queryform.getForm().reset();
      }
     }]
    });

    // ..............查詢表格.....................
    // 限制GRID表格最多只能顯示10列
    var a = [{
       name : '0',
       type : 'string'
      }, {
       name : '1',
       type : 'string'
      }, {
       name : '2',
       type : 'string'
      }, {
       name : '3',
       type : 'string'
      }, {
       name : '4',
       type : 'string'
      }, {
       name : '5',
       type : 'string'
      }, {
       name : '6',
       type : 'string'
      }, {
       name : '7',
       type : 'string'
      }, {
       name : '8',
       type : 'string'
      }, {
       name : '9',
       type : 'string'
      }, {
       name : '10',
       type : 'string'
      }];
    // ------------------------------------------------調(diào)試

    // ---------中間右邊查詢面板的表格內(nèi)容------------
    var sm = new Ext.grid.CheckboxSelectionModel({
     handleMouseDown : Ext.emptyFn
    });

    var cm = new Ext.grid.ColumnModel([
    // sm, {
    // header : '零件號',
    // dataIndex : 'ljh',
    // editor : new Ext.form.TextField()
    // }, {
    // header : '零件名稱',
    // dataIndex : 'ljmch',
    // editor : new Ext.form.TextField()
    // }, {
    // header : '零件種類',
    // dataIndex : 'ljzhl',
    // editor : new Ext.form.TextField()
    // }
    // ,{header:'明細(xì)表編號',dataIndex:'mxph'},{header:'明細(xì)表名稱',dataIndex:'mxmch'},
    // {header:'版本號',dataIndex:'bbh'},{header:'現(xiàn)行通知書號',dataIndex:'tzh'},
    // {header:'頁數(shù)',dataIndex:'ysh'},{header:'備注',dataIndex:'bzh'}
    ]);

    // ------------------------------------------------調(diào)試
    var store = new Ext.data.JsonStore({
     url : './querybean/query.jsp',
     totalProperty : 'total',
     root : 'root',
     fields : a,
     pruneModifiedRecords : true
    });

    store.on('metachange', function(S, meta) {
       Ext.Msg.alert('store.metachange', '');
      });

    // -----------查詢面板數(shù)據(jù)讀入事件------------------
    store.on('beforeload', function(s, o) {// 在請求一個(gè)數(shù)據(jù)對象之前事件(數(shù)據(jù)未讀入).Ext.data.JsonStore讀入數(shù)據(jù)之前的事件.
       var ststore = store;
       store.baseParams = {
        command : 'query', // 返回JSP處理的查詢選擇
        queryselectvalue : queryselect.getValue(),
        queryvalue : querytext.getValue()
       };
      });
    store.on('load', function(storetem, records, options) {
     var s, r, o, d1;
      // Ext.Msg.alert('store.load', '');
     });

    // 當(dāng)數(shù)據(jù)緩存改變和數(shù)據(jù)緩存刷新的時(shí)候,調(diào)用的事件.即:請求到數(shù)據(jù)但未讀入GRID中時(shí)的事件,函數(shù)參數(shù)為(STORE this)
    store.on('datachanged', function(s) {
      });

    var querygridtoolpage = new Ext.PagingToolbar({
     store : store,
     pageSize : 10,
     displayInfo : true,
     displayMsg : 'Displaying topics {0} - {1} of {2}',
     emptyMsg : "No topics to display"
    });
    var querygrid = new Ext.grid.EditorGridPanel({
     width : 640,
     height : 480,
     clicksToEdit : 1, // (3)單擊次數(shù)如1,開始編輯
     cm : cm,
     sm : sm,
     store : store,
     frame : true,
     loadMask: {msg: '正在加載數(shù)據(jù),請等待...'},
     tbar : [{
        text : '添加',
        handler : function() {
         var f = Ext.data.Record.create(a);
         var d = new f({
         // ljh : 'ljh',
         // ljmch : 'ljmch'
         });
         for (var i = 1; i < columns.length - 1; i++)
          // columns.length-1 : JSP傳來的columns里包含了一個(gè)sm.
          d.set(a[i].name, '未定義'); // 初始化record值
         var d1 = new Array();
         querygrid.stopEditing();
         store.insert(0, d); // 增加一空白記錄
         querygrid.startEditing(0, 1);
         store.getAt(0).dirty = true
        }
       }, '-', {
        text : '保存',
        handler : function() {
         var json = []; // 定義增加記錄的數(shù)組
         var alter = [];
         for (var i = 0, c = store.getCount(); i < c; i += 1) {
          if (store.getAt(i).dirty) {
           var e = 0;
           for (var j = 0; j < columns.length - 1; j++) { // 循環(huán)判斷記錄是添加還是修改
            if (store.getAt(i).isModified(j.toString()))
             e++;
           }
           if (e == columns.length - 2)
            json.push(store.getAt(i).data);
           else {
            alter.push(store.getAt(i).data);
            var t = store;
           }// var record=store;
           // var s=store.getAt(i).getChanges()
           // if(store.getAt(i).isModified('1'))
           // Ext.Msg.alert('isModified',store.getAt(i).getChanges());
          }
         };
         if (json[0] == null) {
          Ext.Msg.alert('information', 'not data modify!');
          return;
         };
         var c = new Array(); // 定義數(shù)組
         for (var i = 0; i < columns.length - 1; i++) {
          c[i] = a[i]
         };
         Ext.Ajax.request({
          method : 'POST',
          url : './querybean/query.jsp',
          params : { // POST傳遞參數(shù)出去,每個(gè)參數(shù)以逗號隔開.如:command和data兩參數(shù)
           kind : queryselect.getValue(),
           columns : Ext.encode(c), // 數(shù)組必須以編碼的方式發(fā)送
           command : "save",
           record : Ext.encode(json),
           alter : Ext.encode(alter)
          },
          success : function() {
           Ext.Msg.alert('information', 'data load success!');
           store.reload();
          },
          failure : function() {
           Ext.Msg.alert('information', 'data load failure!');
          }
         })
        }
       }, '-', {
        text : '刪除',
        handler : function() {
         var sm = querygrid.getSelectionModel(); // Returns the
         // grid's SelectionModel.
         var selected = sm.getSelections();
         // Returns the selected records.(getSelections() : Array)
         var ids = [];
         for (var i = 0; i < selected.length; i += 1) {
          var member = selected[i].data; // selected是Ext.data.Record類型數(shù)組.
          if (member[0]) { // Record類型的ID屬性標(biāo)識唯一性.
           ids.push(member[0]); // 如果有ID屬性,則表示該行數(shù)據(jù)是被修改過的,所以需要訪問數(shù)據(jù)庫進(jìn)行刪除
          } else {
           // 如果沒有ID屬性,則表示該行數(shù)據(jù)是新添加的未保存的數(shù)據(jù),所以不需要訪問數(shù)據(jù)庫進(jìn)行刪除該行
           store.remove(store.getAt(i));
          }
         };
         if (ids.join('') == '')
          return;

         Ext.Msg.confirm('信息', '確定要刪除所選項(xiàng)嗎?', function(btn) {
            if (btn == 'yes') {
             // 發(fā)送刪除請求
             Ext.Ajax.request({
              method : 'POST',
       %3

    posted on 2008-09-22 13:24 紫蝶∏飛揚(yáng)↗ 閱讀(1247) 評論(3)  編輯  收藏 所屬分類: EXTJS

    評論:
    # re: 今天公布其近期才完成的某一項(xiàng)目某一階段的部分手稿,能看懂就看吧. 2009-03-17 12:26 | gzc
    能不能給這個(gè)完整的代碼給你參考,謝謝,最近也在用ext js  回復(fù)  更多評論
      
    # re: 今天公布其近期才完成的某一項(xiàng)目某一階段的部分手稿,能看懂就看吧. 2009-03-17 12:48 | gzc
    能不能給這個(gè)完整的代碼給 參考,謝謝,最近也在用ext js   回復(fù)  更多評論
      
    # re: 今天公布其近期才完成的某一項(xiàng)目某一階段的部分手稿,能看懂就看吧. 2009-03-20 11:31 | 紫蝶∏飛揚(yáng)↗
    @gzc
    這寫代碼都只是手稿,看看就行了.其實(shí)這里也有蠻多錯誤的,帖出來只是告訴大家使用方法和其思想而已.  回復(fù)  更多評論
      
    主站蜘蛛池模板: 免费在线观看自拍性爱视频| 免费又黄又硬又爽大片| 国产亚洲成人久久| 亚洲精品无码你懂的| xxxx日本免费| 亚洲精品欧洲精品| 久久这里只精品热免费99| 中文字幕在线观看亚洲日韩| 亚洲AV人无码激艳猛片| 精品无码国产污污污免费网站国产| 日本一区二区免费看| 国产成人精品日本亚洲网站| 两个人看的www视频免费完整版| 亚洲国产天堂久久综合| fc2免费人成在线视频| 中文字幕精品无码亚洲字| 久久九九免费高清视频| 亚洲国产a∨无码中文777| 无码囯产精品一区二区免费 | www在线观看免费视频| 亚洲精品97久久中文字幕无码| 一级做a爰片久久毛片免费陪| 在线观看亚洲天天一三视| 免费黄网站在线观看| 免费人成在线观看播放国产 | 伊人免费在线观看高清版| 国产成人亚洲综合无码精品| 小日子的在线观看免费| 亚洲色欲色欲www| 高清在线亚洲精品国产二区| 亚洲美女视频网站| 四虎成人免费网址在线| 一级毛片aa高清免费观看| 亚洲av色福利天堂| 处破痛哭A√18成年片免费| 免费精品国产自产拍在线观看| 亚洲成av人在线视| 成人无遮挡毛片免费看| av午夜福利一片免费看久久| 亚洲av无码不卡| 日本免费人成黄页在线观看视频|