Extjs关于combobox的二三事

1.获取combobox 的displayField和valueField分别用:Ext.getCmp(‘id’).getRawValue()和Ext.getCmp(‘id’).getValue()

2.Ext.tab.Panel设置当前活动页:

centerSouthPan.setActiveTab(0);//第一页为活动页,括号内可以填写panel的子项的id或者索引

3.treePanel的初始化默认选中某一项:

var record = treePanel.getStore().getNodeById(categoryid);
        treePanel.getSelectionModel().select(record);

4.grid初始化默认选中一行:

在grid的store加载时用回调函数实现,两种都能实现

s_store.on(‘load‘,{

var item = s_store.getAt(s_store.find("product_id", selectproductid));//行對象獲取
                Ext.getCmp(‘searchGrid‘).getSelectionModel().select(item);//勾选上索引为item的行

});

根据实际使用的情况:

推荐下面的写法:

s_store.load({
            params: {
                category_id: categoryid
            }, callback: function () {
                var item = s_store.getAt(s_store.find("product_id", selectproductid));//行對象獲取
                Ext.getCmp(‘searchGrid‘).getSelectionModel().select(item);//勾选上索引为item的行
            }
        });

最后上传一段实例代码:

  1 Ext.Loader.setConfig({ enabled: true });
  2 Ext.Loader.setPath(‘Ext.ux‘, ‘/Scripts/Ext4.0/ux‘);
  3 Ext.require([
  4     ‘Ext.form.Panel‘,
  5     ‘Ext.ux.form.MultiSelect‘,
  6     ‘Ext.ux.form.ItemSelector‘
  7 ]);
  8
  9 var titleName = "區域包名稱:";
 10 var leftW = 250; //左側樹狀結構的寬度
 11 var conW = 300; //右側的寬度
 12 var theight = 320; //窗口的高度
 13 var topheight = 100; //窗口的高度
 14 var pageSize = 500;
 15 var leftW = 250; //左側樹狀結構的寬度
 16 var rigW = 560; //右側的寬度
 17 var theight = 620; //窗口的高度
 18 var topheight = 170; //窗口的高度
 19 var pageSize = 500;
 20 var s_store;
 21 var mainTainProduCateID = "0"; //活動類別ID
 22 var siteid = 1;
 23 var promationWin;
 24 var boolClass = false;
 25 var centerNorthPan;
 26 var p_store;
 27 var isSearchProduct = 0;//是否進行搜尋操作 >0的時候進行搜尋
 28 var categoryId = "";    //商品類別編號
 29 var categoryName = "";  //商品類別名稱
 30 var categoryid = ‘‘;
 31 var selectproductid = ‘‘;
 32 var packetid = 0;
 33 var treePanel;
 34 var treeStore;
 35 var centerPanel;
 36 var searchGrid;
 37 var productGrid;
 38 Ext.onReady(function () {
 39
 40
 41     var productPro = [
 42      { name: ‘product_id‘, type: ‘int‘ },
 43      { name: ‘brand_id‘, type: ‘string‘ },
 44      { name: ‘category_id‘, type: ‘string‘ },
 45      { name: ‘category_name‘, type: ‘string‘ },
 46      { name: ‘brand_name‘, type: ‘string‘ },
 47      { name: ‘product_name‘, type: ‘string‘ },
 48      { name: ‘product_price_list‘, type: ‘int‘ },
 49      { name: ‘product_status‘, type: ‘string‘ },
 50      { name: ‘product_mode‘, type: ‘string‘ },
 51      { name: ‘combination‘, type: ‘string‘ },
 52      { name: ‘product_freight_set‘, type: ‘string‘ }
 53     ];
 54     //所有商品的store
 55     Ext.define(‘GIGADE.allPRODUCT‘, {
 56         extend: ‘Ext.data.Model‘,
 57         fields: productPro
 58     });
 59
 60
 61     Ext.define(‘GIGADE.searchProduct‘, {
 62         extend: ‘Ext.data.Model‘,
 63         fields: productPro
 64     });
 65
 66
 67
 68     //館別Model
 69     Ext.define("gigade.shopClass", {
 70         extend: ‘Ext.data.Model‘,
 71         fields: [
 72             { name: "class_id", type: "string" },
 73             { name: "class_name", type: "string" }]
 74     });
 75     //獲取館別
 76     var shopClassStore = Ext.create(‘Ext.data.Store‘, {
 77         model: ‘gigade.shopClass‘,
 78         autoLoad: true,
 79         proxy: {
 80             type: ‘ajax‘,
 81             url: "/PromotionsMaintain/GetShopClass",
 82             actionMethods: ‘post‘,
 83             reader: {
 84                 type: ‘json‘,
 85                 root: ‘data‘
 86             }
 87         }
 88     });
 89     Ext.define("gigade.Brand", {
 90         extend: ‘Ext.data.Model‘,
 91         fields: [
 92         { name: "brand_id", type: "string" },
 93         { name: "brand_name", type: "string" }]
 94     });
 95     //品牌store
 96     var classBrandStore = Ext.create(‘Ext.data.Store‘, {
 97         model: ‘gigade.Brand‘,
 98         autoLoad: false,
 99         autoDestroy: true, //自動銷毀
100         remoteSort: false,
101         proxy: {
102             type: ‘ajax‘,
103             url: "/PromotionsMaintain/QueryClassBrand",
104             actionMethods: ‘post‘,
105             reader: {
106                 type: ‘json‘,
107                 root: ‘item‘
108             }
109         }
110     });
111     //獲取左邊的category樹結構(商品分類store)
112     treeStore = Ext.create(‘Ext.data.TreeStore‘, {
113         autoLoad: true,
114         proxy: {
115             type: ‘ajax‘,
116             url: ‘/Product/GetProductCatagory‘,
117             actionMethods: ‘post‘
118         },
119         rootVisible: false,
120         root: {
121             text: ‘商品類別‘,
122             expanded: true,
123             children: []
124         }
125     });
126     treeStore.load();
127     treePanel = new Ext.tree.TreePanel({
128         id: ‘treePanel‘,
129         region: ‘west‘,
130         width: leftW,
131         border: 0,
132         height: theight,
133         store: treeStore,
134         listeners: {
135             ‘itemclick‘: function (view, record, item, index, e) {
136                 nodeId = record.raw.id; //获取点击的节点id
137                 nodeText = record.raw.text; //获取点击的节点text
138                 categoryId = nodeId;
139                 categoryName = nodeText;
140                 Ext.getCmp(‘categoryId‘).setValue(categoryId);
141                 Ext.getCmp(‘categoryName‘).setValue(categoryName);
142                 SearchActivy();
143             }
144
145         }
146
147     });
148
149     Ext.define("gigade.paraModel", {
150         extend: ‘Ext.data.Model‘,
151         fields: [
152             { name: ‘parameterCode‘, type: ‘string‘ },
153             { name: ‘parameterName‘, type: ‘string‘ }
154         ]
155     });
156     var statusStore = Ext.create("Ext.data.Store", {
157         model: ‘gigade.paraModel‘,
158         autoLoad: true,
159         proxy: {
160             type: ‘ajax‘,
161             url: ‘/Parameter/QueryPara?paraType=product_status‘,
162             noCache: false,
163             getMethod: function () { return ‘get‘; },
164             actionMethods: ‘post‘,
165             reader: {
166                 type: ‘json‘,
167                 root: ‘items‘
168             }
169         }
170     });
171     Ext.define("gigade.Brand", {
172         extend: ‘Ext.data.Model‘,
173         fields: [
174         { name: "brand_id", type: "string" },
175         { name: "brand_name", type: "string" }]
176     });
177
178     //品牌store
179     var classBrandStore = Ext.create(‘Ext.data.Store‘, {
180         model: ‘gigade.Brand‘,
181         autoLoad: false,
182         autoDestroy: true, //自動銷毀
183         remoteSort: false,
184         proxy: {
185             type: ‘ajax‘,
186             url: "/PromotionsMaintain/QueryClassBrand",
187             actionMethods: ‘post‘,
188             reader: {
189                 type: ‘json‘,
190                 root: ‘item‘
191             }
192         }
193     });
194
195     classBrandStore.on(‘beforeload‘, function () {
196         Ext.apply(classBrandStore.proxy.extraParams, {
197             topValue: Ext.htmlEncode(Ext.getCmp("shopClass_id").getValue())
198         });
199     });
200
201     centerNorthPan = new Ext.form.FormPanel({
202         //title: ‘搜索框‘,
203         region: ‘north‘,
204         width: rigW,
205         height: topheight,
206         labelAlign: ‘right‘,
207         buttonAlign: ‘right‘,
208         padding: 10,
209         border: 0,
210         items: [
211                   {
212                       xtype: ‘fieldcontainer‘,
213                       defaults: {
214                           labelWidth: 40,
215                           width: 120
216                       },
217                       id: ‘ls‘,
218                       combineErrors: true,
219                       layout: ‘hbox‘,
220                       items: [
221              {
222                  xtype: ‘combobox‘, //class_id
223                  allowBlank: true,
224                  fieldLabel: ‘館別‘,
225                  editable: false,
226                  id: ‘shopClass_id‘,
227                  width: 200,
228                  name: ‘class_name‘,
229                  hiddenName: ‘shopClass_id‘,
230                  colName: ‘class_name‘,
231                  store: shopClassStore,
232                  displayField: ‘class_name‘,
233                  valueField: ‘class_id‘,
234                  typeAhead: true,
235                  forceSelection: false,
236                  emptyText: SELECT,
237                  listeners: {
238                      "select": function (combo, record) {
239                          var z = Ext.getCmp("clsssBrand_id");
240
241                          var c = Ext.getCmp("comboFrontCage");
242                          var ch = Ext.getCmp("comboFrontCage_hide");
243                          z.clearValue();
244                          z.setDisabled(false);
245                          c.setValue("");
246                          ch.setValue("");
247                          classBrandStore.removeAll();
248                          boolClass = true;
249                          z.setDisabled(false);
250
251                      }
252                  }
253              },
254              {
255                  xtype: ‘textfield‘,
256                  fieldLabel: ‘所有商品查詢‘,
257                  labelWidth: 80,
258                  id: ‘key‘,
259                  name: ‘key‘,
260                  width: 180,
261              },
262              {
263                  xtype: ‘button‘,
264                  fieldLabel: PRODVISIT,
265                  name: ‘visitdate‘,
266                  text: SEARCH,
267                  handler: Search
268              }
269                       ]
270                   },
271                   {
272                       xtype: ‘fieldcontainer‘,
273                       defaults: {
274                           labelWidth: 40
275                       },
276                       id: ‘2s‘,
277                       combineErrors: true,
278                       layout: ‘hbox‘,
279                       items: [
280                        {
281                            xtype: ‘combobox‘, //banner_id
282                            allowBlank: true,
283                            fieldLabel: BLANDNAME,
284                            editable: true,
285                            forceSelection: true,
286                            id: ‘clsssBrand_id‘,
287                            Width: 200,
288                            name: ‘clsssbrand_name‘,
289                            disabled: true,
290                            hiddenname: ‘brand_id‘,
291                            store: classBrandStore,
292                            displayField: ‘brand_name‘,
293                            valueField: ‘brand_id‘,
294                            typeAhead: true,
295                            forceSelection: false,
296                            emptyText: SELECT,
297                            listeners: {
298                                beforequery: function (qe) {
299                                    if (boolClass) {
300                                        delete qe.combo.lastQuery;
301                                        classBrandStore.load({
302                                            params: {
303                                                topValue: Ext.getCmp("shopClass_id").getValue()
304                                            }
305                                        });
306                                        boolClass = false;
307                                    }
308                                },
309                                ‘blur‘: function () {
310                                    var o = classBrandStore.data.items;
311                                    if (document.getElementsByName(‘clsssbrand_name‘)[0].value != Ext.getCmp(‘clsssBrand_id‘).getValue()) {
312                                        document.getElementsByName(‘clsssbrand_name‘)[0].value = classBrandStore.getAt(0).get(‘brand_id‘);
313                                    }
314                                }
315                            }
316                        },
317                        {
318                            xtype: ‘displayfield‘,
319                            fieldLabel: ‘類別編號‘,
320                            id: ‘categoryId‘,
321                            name: ‘categoryId‘,
322                            width: 100,
323                            labelWidth: 60
324                        },
325                        {
326                            xtype: ‘displayfield‘,
327                            fieldLabel: ‘類別名稱‘,
328                            id: ‘categoryName‘,
329                            name: ‘categoryName‘,
330                            labelWidth: 60,
331                            width: 200
332                        }
333                       ]
334                   },
335                   {
336                       xtype: ‘fieldcontainer‘,
337                       defaults: {
338                           labelWidth: 60,
339                           width: 120
340                       },
341                       id: ‘3s‘,
342                       combineErrors: true,
343                       layout: ‘hbox‘,
344                       items: [
345                        {
346                            xtype: ‘combobox‘, //status
347                            allowBlank: true,
348                            fieldLabel: ‘商品狀態‘,
349                            editable: true,
350                            forceSelection: true,
351                            id: ‘s_status‘,
352                            width: 200,
353                            name: ‘s_status‘,
354                            hiddenname: ‘s_status‘,
355                            store: statusStore,
356                            displayField: ‘parameterName‘,
357                            valueField: ‘parameterCode‘,
358                            typeAhead: true,
359                            forceSelection: false,
360                            emptyText: SELECT,
361                            listeners: {
362                                "select": function (combo, record) {
363                                    var z = Ext.getCmp("s_status");
364                                    if (z.getValue() == "0" || z.getValue() == "20") {
365                                        Ext.Msg.alert(INFORMATION, "不存在該狀態的商品");
366                                        z.setValue("");
367                                    }
368                                }
369                            }
370                        }, {
371                            xtype: ‘textfield‘,
372                            fieldLabel: ‘類別商品查詢‘,
373                            id: ‘keyactivy‘,
374                            name: ‘keyactivy‘,
375                            labelWidth: 80,
376                            width: 200,
377                        },
378                        {
379                            xtype: ‘button‘,
380                            fieldLabel: PRODVISIT,
381                            name: ‘visitdate‘,
382                            text: SEARCH,
383                            handler: SearchActivy
384                        }
385                       ]
386                   },
387                   {
388                       xtype: ‘combotree‘,
389                       id: ‘comboFrontCage‘,
390                       name: ‘classname‘,
391                       hiddenname: ‘classname‘,
392                       hidden: true,
393                       editable: false,
394                       submitValue: false,
395                       colName: ‘category_id‘,
396                       store: frontCateStore,
397                       fieldLabel: CLASSNAME,
398                       height: 200,
399                       labelWidth: 60
400
401                   },
402                  {
403                      hidden: true,
404                      xtype: ‘textfield‘,
405                      id: ‘comboFrontCage_hide‘,
406                      name: ‘comboFrontCage_hide‘,
407                      width: 10,
408                      listeners: {
409                          change: function (txt, newValue, oldValue) {
410                              if (newValue) {
411                                  var z = Ext.getCmp("clsssBrand_id");
412                                  var sc = Ext.getCmp("shopClass_id");
413                                  z.clearValue();
414                                  sc.clearValue();
415                                  z.setDisabled(true);
416                              }
417                          }
418                      }
419                  }
420         ]
421     });
422
423     s_store = Ext.create(‘Ext.data.Store‘, {
424         pageSize: pageSize,
425         model: ‘GIGADE.searchProduct‘,
426         proxy: {
427             type: ‘ajax‘,
428             url: ‘/Element/GetProductByCategorySet‘,
429             actionMethods: ‘post‘,
430             reader: {
431                 type: ‘json‘,
432                 root: ‘item‘,
433                 totalProperty: ‘totalCount‘
434             }
435         }
436     });
437     p_store = Ext.create(‘Ext.data.Store‘, {
438         pageSize: pageSize,
439         model: ‘GIGADE.allPRODUCT‘,
440         proxy: {
441             type: ‘ajax‘,
442             url: ‘/Product/GetAllProList‘,
443             actionMethods: ‘post‘,
444             reader: {
445                 type: ‘json‘,
446                 root: ‘item‘,
447                 totalProperty: ‘totalCount‘
448             }
449         }
450     });
451
452
453     s_store.on("beforeload", function () {
454         Ext.apply(s_store.proxy.extraParams, {
455             category_id: categoryId,
456             status: Ext.getCmp(‘s_status‘).getValue() == ‘‘ ? ‘‘ : Ext.htmlEncode(Ext.getCmp(‘s_status‘).getValue()),
457             keyCode: Ext.getCmp(‘keyactivy‘).getValue() == ‘‘ ? ‘‘ : Ext.htmlEncode(Ext.getCmp(‘keyactivy‘).getValue()),
458             brand_id: Ext.getCmp(‘clsssBrand_id‘).getValue() == ‘‘ ? ‘‘ : Ext.htmlEncode(Ext.getCmp(‘clsssBrand_id‘).getValue()),
459             class_id: Ext.getCmp(‘shopClass_id‘).getValue() == ‘‘ ? ‘‘ : Ext.htmlEncode(Ext.getCmp(‘shopClass_id‘).getValue()),
460             comboFrontCage_hide: Ext.getCmp(‘comboFrontCage_hide‘).getValue() == ‘‘ ? ‘‘ : Ext.htmlEncode(Ext.getCmp(‘comboFrontCage_hide‘).getValue())
461
462         });
463     });
464     p_store.on("beforeload", function () {
465         Ext.apply(p_store.proxy.extraParams, {
466             status: Ext.getCmp(‘s_status‘).getValue() == ‘‘ ? ‘‘ : Ext.htmlEncode(Ext.getCmp(‘s_status‘).getValue()),
467             keyCode: Ext.getCmp(‘key‘).getValue() == ‘‘ ? ‘‘ : Ext.htmlEncode(Ext.getCmp(‘key‘).getValue()),
468             brand_id: Ext.getCmp(‘clsssBrand_id‘).getValue() == ‘‘ ? ‘‘ : Ext.htmlEncode(Ext.getCmp(‘clsssBrand_id‘).getValue()),
469             class_id: Ext.getCmp(‘shopClass_id‘).getValue() == ‘‘ ? ‘‘ : Ext.htmlEncode(Ext.getCmp(‘shopClass_id‘).getValue()),
470             comboFrontCage_hide: Ext.getCmp(‘comboFrontCage_hide‘).getValue() == ‘‘ ? ‘‘ : Ext.htmlEncode(Ext.getCmp(‘comboFrontCage_hide‘).getValue())
471
472         });
473     });
474
475     function Search() {
476         p_store.removeAll();
477         p_store.load();
478     }
479     function SearchActivy() {
480         s_store.removeAll();
481         s_store.load({
482             params: {
483                 category_id: categoryId,
484                 status: Ext.getCmp(‘s_status‘).getValue() == ‘‘ ? ‘‘ : Ext.htmlEncode(Ext.getCmp(‘s_status‘).getValue()),
485                 keyCode: Ext.getCmp(‘keyactivy‘).getValue() == ‘‘ ? ‘‘ : Ext.htmlEncode(Ext.getCmp(‘keyactivy‘).getValue()),
486                 brand_id: Ext.getCmp(‘clsssBrand_id‘).getValue() == ‘‘ ? ‘‘ : Ext.htmlEncode(Ext.getCmp(‘clsssBrand_id‘).getValue()),
487                 class_id: Ext.getCmp(‘shopClass_id‘).getValue() == ‘‘ ? ‘‘ : Ext.htmlEncode(Ext.getCmp(‘shopClass_id‘).getValue()),
488                 comboFrontCage_hide: Ext.getCmp(‘comboFrontCage_hide‘).getValue() == ‘‘ ? ‘‘ : Ext.htmlEncode(Ext.getCmp(‘comboFrontCage_hide‘).getValue())
489
490             }
491         });
492     }
493
494     //控制productGrid中的按鈕
495     var t_product_cm = Ext.create(‘Ext.selection.CheckboxModel‘, {
496         listeners: {
497             selectionchange: function (sm, selections) {
498                 Ext.getCmp("productGrid").down(‘#t_save‘).setDisabled(selections.length == 0);
499             }
500         }
501     });
502     //控制類別中商品的控件
503     var t_search_cm = Ext.create(‘Ext.selection.CheckboxModel‘, {
504         listeners: {
505             selectionchange: function (sm, selections) {
506                 Ext.getCmp("searchGrid").down(‘#t_all_save‘).setDisabled(selections.length == 0);
507             }
508         }
509     });
510
511     //顯示所有商品
512     productGrid = new Ext.grid.Panel({
513         id: ‘productGrid‘,
514         store: p_store,
515         region: ‘center‘,
516         selModel: t_product_cm,
517         autoScroll: true,
518         border: 0,
519         height: 390,
520         viewConfig: {
521             enableTextSelection: true,
522             stripeRows: false,
523             getRowClass: function (record, rowIndex, rowParams, store) {
524                 return "x-selectable";
525             }
526         },
527         columns: [
528                   { header: ‘商品編號‘, dataIndex: ‘product_id‘, width: 60, align: ‘center‘ },
529                   { header: ‘商品名稱‘, dataIndex: ‘product_name‘, width: 180, align: ‘center‘ },
530                   { header: ‘品牌‘, dataIndex: ‘brand_name‘, width: 120, align: ‘center‘ },
531                   { header: ‘組合類型‘, dataIndex: ‘combination‘, width: 120, align: ‘center‘, hidden: true },
532                   { header: ‘商品狀態‘, dataIndex: ‘product_status‘, width: 80, align: ‘center‘ },
533                   { header: ‘運送方式‘, dataIndex: ‘product_freight_set‘, width: 60, align: ‘center‘, hidden: true },
534                   { header: ‘出貨方式‘, dataIndex: ‘product_mode‘, width: 60, align: ‘center‘, hidden: true }
535         ],
536         tbar: [
537               { xtype: ‘button‘, id: ‘t_save‘, text: ‘確定‘, iconCls: ‘icon-add‘, disabled: true, handler: function () { onAddEleClick(); } }
538         ],
539         bbar: Ext.create(‘Ext.PagingToolbar‘, {
540             store: p_store,
541             pageSize: pageSize,
542             displayInfo: true,
543             displayMsg: NOW_DISPLAY_RECORD + ‘: {0} - {1}‘ + TOTAL + ‘: {2}‘,
544             emptyMsg: NOTHING_DISPLAY
545         }),
546         listeners: {
547             scrollershow: function (scroller) {
548                 if (scroller && scroller.scrollEl) {
549                     scroller.clearManagedListeners();
550                     scroller.mon(scroller.scrollEl, ‘scroll‘, scroller.onElScroll, scroller);
551                 }
552             }
553         }
554     });
555     //顯示類別中商品的grid
556     searchGrid = new Ext.grid.Panel({
557         id: ‘searchGrid‘,
558         store: s_store,
559         region: ‘center‘,
560         autoScroll: true,
561         selModel: t_search_cm,
562         autoScroll: true,
563         border: 0,
564         height: 390,
565         viewConfig: {
566             enableTextSelection: true,
567             stripeRows: false,
568             getRowClass: function (record, rowIndex, rowParams, store) {
569                 return "x-selectable";
570             }
571         },
572         columns: [
573                  { header: ‘類別‘, dataIndex: ‘category_name‘, width: 120, align: ‘center‘ },
574                  { header: ‘商品編號‘, dataIndex: ‘product_id‘, width: 60, align: ‘center‘ },
575                  { header: ‘商品名稱‘, dataIndex: ‘product_name‘, width: 180, align: ‘center‘ },
576
577                  { header: ‘品牌‘, dataIndex: ‘brand_name‘, width: 120, align: ‘center‘ },
578                  { header: ‘組合類型‘, dataIndex: ‘combination‘, width: 120, align: ‘center‘, hidden: true },
579                  { header: ‘商品狀態‘, dataIndex: ‘product_status‘, width: 80, align: ‘center‘, hidden: true },
580                  { header: ‘運送方式‘, dataIndex: ‘product_freight_set‘, width: 60, align: ‘center‘, hidden: true },
581                  { header: ‘出貨方式‘, dataIndex: ‘product_mode‘, width: 60, align: ‘center‘, hidden: true }
582         ],
583         tbar: [
584             { xtype: ‘button‘, id: ‘t_all_save‘, text: ‘確定‘, iconCls: ‘icon-add‘, disabled: true, handler: function () { onAddEleCaClick(); } }
585         ],
586         bbar: Ext.create(‘Ext.PagingToolbar‘, {
587             store: s_store,
588             pageSize: pageSize,
589             displayInfo: true,
590             displayMsg: NOW_DISPLAY_RECORD + ‘: {0} - {1}‘ + TOTAL + ‘: {2}‘,
591             emptyMsg: NOTHING_DISPLAY
592         }),
593         listeners: {
594             scrollershow: function (scroller) {
595                 if (scroller && scroller.scrollEl) {
596                     scroller.clearManagedListeners();
597                     scroller.mon(scroller.scrollEl, ‘scroll‘, scroller.onElScroll, scroller);
598                 }
599             }
600         }
601     });
602
603
604     centerSouthPan = new Ext.tab.Panel({
605         region: ‘center‘,
606         autoScroll: true,
607         items: [
608             {
609                 title: ‘類別商品‘,
610                 items: [searchGrid]
611             }, {
612                 title: ‘所有商品‘,
613                 items: [productGrid]
614             }
615         ]
616     });
617
618     var centerPanel = new Ext.Panel({
619         region: ‘center‘,
620         items: [centerNorthPan, centerSouthPan]
621     });
622
623     //頁面佈局
624     promationWin = new Ext.Window({
625         //title: titleName,
626         height: theight,
627         width: leftW + rigW,
628         layout: ‘border‘,
629         modal: true,
630         constrain: true,
631         closeAction: ‘hide‘, //hide
632         items: [
633             //topPanel,
634             treePanel,
635             centerPanel
636         ]
637     });
638
639
640
641 });
642
643 function ElementProductShow(packetid, packetname, categoryid, selectproductid) {
644     titleName += packetname;
645     promationWin.title = titleName;
646     packetid = packetid;
647     promationWin.show();
648     centerNorthPan.form.reset();
649     s_store.removeAll();
650     p_store.removeAll();
651     p_store.load();
652     if (categoryid != ‘0‘ && categoryid != ‘‘) {
653
654
655         var record = treePanel.getStore().getNodeById(categoryid);
656         treePanel.getSelectionModel().select(record);
657
658         Ext.getCmp(‘categoryId‘).setValue(record.raw.id);
659         Ext.getCmp(‘categoryName‘).setValue(record.raw.text);
660         s_store.load({
661             params: {
662                 category_id: categoryid
663             }, callback: function () {
664                 var item = s_store.getAt(s_store.find("product_id", selectproductid));//行對象獲取
665                 Ext.getCmp(‘searchGrid‘).getSelectionModel().select(item);
666             }
667         });
668         centerSouthPan.setActiveTab(0);
669
670     } else {
671         centerSouthPan.setActiveTab(1);
672         p_store.load({
673             callback: function () {
674             var itemP = p_store.getAt(p_store.find("product_id", selectproductid));//行對象獲取
675             Ext.getCmp(‘productGrid‘).getSelectionModel().select(itemP);
676         }
677         });
678     }
679
680 }
681
682 function onAddEleCaClick() {
683     if (Ext.getCmp(‘productGrid‘).getSelectionModel().getSelection().length != 0) {
684         Ext.Msg.alert(INFORMATION, SELECPROTTIP);
685         return;
686     }
687     var row = Ext.getCmp(‘searchGrid‘).getSelectionModel().getSelection();
688
689     if (row.length == 0) {
690         Ext.Msg.alert(INFORMATION, NO_SELECTION);
691     } else if (row.length > 1) {
692         Ext.Msg.alert(INFORMATION, ONE_SELECTION);
693     } else if (row.length == 1) {
694         promationWin.close();
695         Ext.getCmp(‘product_id‘).setValue(row[0].data.product_id);
696         Ext.getCmp(‘category_id‘).setValue(row[0].data.category_id);
697         Ext.getCmp(‘category_name‘).show();
698         Ext.getCmp(‘category_name‘).setValue(row[0].data.category_name);
699     }
700 }
701
702 function onAddEleClick() {
703     if (Ext.getCmp(‘searchGrid‘).getSelectionModel().getSelection().length != 0) {
704         Ext.Msg.alert(INFORMATION, SELECPROTTIP);
705         return;
706     }
707
708     var row = Ext.getCmp(‘productGrid‘).getSelectionModel().getSelection();
709
710     if (row.length == 0) {
711         Ext.Msg.alert(INFORMATION, NO_SELECTION);
712     } else if (row.length > 1) {
713         Ext.Msg.alert(INFORMATION, ONE_SELECTION);
714     } else if (row.length == 1) {
715         Ext.getCmp(‘category_name‘).setValue("");
716         Ext.getCmp(‘category_id‘).setValue(0);
717         Ext.getCmp(‘product_id‘).setValue(row[0].data.product_id);
718         Ext.getCmp(‘category_name‘).hide();
719         promationWin.close();
720     }
721 }

这是一段常用布局的代码:上面卤煮菜鸟遇到的问题解决办发效果如下图

时间: 2024-10-09 12:28:46

Extjs关于combobox的二三事的相关文章

初识zabbix需了解的二三事

简介 zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案: zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题: 监控平台的组成 数据采集 --> 数据存储 --> 数据展示和分析 --> 报警 常见监控实现方案对比 cacti 优点:利用rrdtool绘图,图形美观: 缺点:报警功能薄弱,不适合大规模监控场景: nagios 优点:报警功能强大: 缺点:只关心正常与否的状态,数

Ubuntu12.04 Version 安装二三事

Ubuntu12.04 Version 安装二三事 安装输入法 因为是全英的系统,所以,中文输入法是一定要装的!!! 介绍一:(和我电脑配置很像,from http://vb2005xu.iteye.com/blog/1748575) Ubuntu上的输入法主要有小小输入平台(支持拼音/二笔/五笔等),Fcitx,Ibus,Scim等.其中Scim和Ibus是输入法框架. 在Ubuntu的中文系统中自带了中文输入法,通过Ctrl+Space可切换中英文输入法.这里我们主要说下Ubuntu英文系统

iOS7下滑动返回与ScrollView共存二三事

[转载请注明出处] = =不是整篇复制就算注明出处了亲... iOS7下滑动返回与ScrollView共存二三事 [前情回顾] 去年的时候,写了这篇帖子iOS7滑动返回.文中提到,对于多页面结构的应用,可以替换interactivePopGestureRecognizer的delegate以统一管理应用中所有页面滑动返回的开关,比如在UINavigationController的派生类中 1 //我是一个NavigationController的派生类 2 - (id)initWithRootV

转手项目二三事

程序员下班之余除了自己充电学习,一般都期待搞个私活做做,这样的方式给自己加班仿佛有了一层光环:自动回血又加经验.我也是今年才开始做一些个人的小案子,都是朋友的朋友介绍的,没什么价.只是这样的过程还是比较好的:慢慢建立自己的客户,提高自己的代码效率,驱动你去研究一些你不熟悉东西,了解别的行业,积累人脉关系.但遇到转手项目这种案子 营养不多,麻烦却不少. 上次一个朋友介绍一个接口的小差,大概一共就是二十几个方法,还没开始做就打了1000元给我.当时心想:写几个方法给这么多,太多了吧.按照他说的 一两

Linux基础回顾(2)——Linux系统分区二三事

问题来自Linux教材,答案自我整理难免会有不足之处.这是我Linux期末的总结 1. 一块硬盘上可以有几种类型的分区?各自可以有多少个?(各个分区能安装操作系统吗?) 硬盘分区有三种类型的分区:主分区,扩展分区,逻辑分区:一个硬盘最多能划分4个主分区,或者3个主分区加上一个扩展分区,扩展分区上可以划分多个逻辑分区(最多20个).能安装操作系统. 2.用户能否在安装过程中创建扩展分区呢? 分区工具在文件系统类型中没有提供扩展(extended)分区类型,即用户不能根据需要不能手工创建扩展分区.安

老曹眼中的研发管理二三事

这是在gitchat上的第一次分享,中生代联手gitchat在做研发管理的专题活动,作为先锋,抛砖引玉. 关于管理,必然会谈到业界先贤德鲁克先生对管理的定义. 管理就是界定企业的使命,并激励和组织人力资源去实现这个使命.界定使命是企业家的任务,而激励与组织人力资源是领导力的范畴,二者的结合就是管理. 这是对企业管理的阐述,管理是一种实践,其本质不在于'知'而在于'行':其验证不在于逻辑,而在于成果:其唯一权威就是成就. 而我们多数人不是企业家,更多是基层的管理者,面对的一个或几个小型的组织.尤其

关于线性模型你可能还不知道的二三事(二、也谈民主)

目录 1 如何更新权值向量?2 最小均方法(LMS)与感知机:低效的民主3 最小二乘法:完美的民主4 支持向量机:现实的民主5 总结6 参考资料 1 如何更新权值向量? 在关于线性模型你可能还不知道的二三事(一.样本)中我已提到如何由线性模型产生样本,在此前提下,使用不同机器学习算法来解决回归问题的本质都是求解该线性模型的权值向量W.同时,我们常使用线性的方式来解决分类问题:求解分隔不同类别个体的超平面的法向量W.不论回归还是分类,都是求解向量W,而求解的核心思想也英雄所见略同:向量W倾向于指向

1007: 童年生活二三事

台州acm:1007: 童年生活二三事 Description Redraiment小时候走路喜欢蹦蹦跳跳,他最喜欢在楼梯上跳来跳去. 但年幼的他一次只能走上一阶或者一下子蹦上两阶. 现在一共有N阶台阶,请你计算一下Redraiment从第0阶到第N阶共有几种走法. Input 输入包括多组数据. 每组数据包括一行:N(1≤N≤40). 输入以0结束. Output 对应每个输入包括一个输出. 为redraiment到达第n阶不同走法的数量. Sample Input 1 2 0 Sample

程序猿二三事之Java基础--Java SE 5增加的特性--语法篇(一)

程序猿二三事之Java基础–Java SE 5增加的特性–语法篇(一) [ TOC ] 为什么是Java SE 5? 目前已经到了JDK-8u74了,JDK7的主版本已经于2015年4月停止公开更新. 那为什么还要来说Java/JDK5呢? Java SE在1.4(2002)趋于成熟,随着越来越多应用于开发企业应用,许多框架诞生于这个时期或走向成熟. Java SE 5.0的发布(2004)在语法层面增加了很多特性,让开发更高效,代码更整洁. 自动装箱/拆箱.泛型.注解.for循环增强.枚举.可