2011-06-22 40 views
0

我是新的ExtJS,我試圖顯示一個組合,取消和確定按鈕的窗口,但組合似乎沒有正常工作:它沒有顯示標籤當我點擊選取器(或觸發器)時,它不顯示列表。分機js組合不能正常工作

我需要組合接受自由文本和選定的值,但我不知道我做錯了什麼。我審查了Sencha api和論壇,但我無法解決這個問題。

我希望你們有這個解決方案。如果我的英語不夠好,謝謝並抱歉。

function new_filter() 
    {  
     var ds_filter2 = new Ext.data.JsonStore({ 
     url: 'forms-combobox-data-filters.php?user='+user_id, 
     fields: ['id', 'name'], 
     autoLoad: true/*, 
     totalProperty: "results"*/ 

}); 

    var dlg = new Ext.Window(
    { 
     title: 'Save Current Settings as a Filter', 
     id: 'frmFilter', 
     width: 350, 
     y: 200, 
     height: 120, 
     minWidth: 350, 
     minHeight: 100, 
     iconCls: 'save', 
     bodyStyle:'padding:0px 0px 0px 0px; background-color:#F5F5F5;', 
     modal: true, 
     resizable: false, 
     maximizable: false, 
     draggable:false, 
     closable: true, 
     closeAction: 'close', 
     hideMode: "offsets", 
     constrainHeader: true, 
     //autoLoad: { url : 'filter_form2.php', scripts: true}, 
     keys: [ 
       { key: [Ext.EventObject.ENTER], handler: function() { 
         create_new_filter(); 
        } 
       }, 
       { key: [Ext.EventObject.ESCAPE], handler: function() { 
         dlg.close(); 
        } 
       }], 

     buttons:[ 
        { 
         text : 'OK', 
         handler: function() 
         { 
          var selectedValue = Ext.getCmp('combo-new-filter').value; //selectedValue => Nombre             
          var rec = ds_filter2.getById(selectedValue);     //rec => ID                 
          //alert('rec: '+rec+'\nselected value: '+selectedValue); 
          if (rec == undefined) //si el valor seleccionado no se encuentra en combo 
          { 
           create_new_filter(selectedValue); 
           dlg.close(); 
          } 
          else 

          { 
           //alertar con el message box si se desea sobre escrbir el filtro 
           //ok---> grabar 
           //cancel--->cancelar 
           var selected_text = rec.get('name'); 
           var id = rec.get('id'); 
           //alert("selected text: "+selected_text); 
           Ext.MessageBox.confirm('Confirm','Are you sure you want to overwrite this filter "'+selected_text+'"?', function(btn) 
           { 

            if (btn=='yes') 

            { 

             var url = 'deleteFilter.php?filter='+id;   
             var mnmxmlhttp = Array(); 
             mnmxmlhttp = new myXMLHttpRequest(); 
             if (mnmxmlhttp) 
             { 
              mnmxmlhttp.open ("POST", url, true); 
              mnmxmlhttp.setRequestHeader ('Content-Type', 'application/x-www-form-urlencoded'); 
              mnmxmlhttp.send (""); 
              mnmxmlhttp.onreadystatechange = function() 
              { 
               if (mnmxmlhttp.readyState == 4) 
               { 
                create_new_filter(selected_text); 
               } 
              } 


             } 

            } 


           }); 

          } 
         } 

        }, 
        { 
         text : 'Cancel', 
         handler: function() { 
          dlg.close(); 
         } 

        } 
       ], 

     items:[ 
       /*{ 
        xtype: 'label', 
        forId: 'myFieldId', 
        text: 'Name of saved filter:', 
       },*/ 
       { 

        id:'combo-new-filter', 
        labelAlign: 'left', 
        fieldLabel: 'Filter Name:', 
        xtype: 'combo',     
        store: ds_filter2, 
        //queryMode: 'local',      
        displayField:'name', 
        valueField: 'id', 
        //editable: true, 
        x: 110, 
        y: 20, 
        listeners: { 
            /*beforerender: function(combo){ 
            combo.setValue("Select saved filter to apply"); 
            }, 
            select:{fn:function(combo, value) { 
              if (combo.getValue()>0){onSelectFilter(combo.getValue());} 

              } 
            }*/ 

           } 

       } 
     ] 

    }); 
dlg.show(); 

}

+0

你可以發佈你從這個URL獲得的數據:'forms-combobox-data-filters.php?user ='+ user_id – Swar

+0

恐怕我不能提供數據,但我最終做的是設置在組合以下值: 預輸入:假的, 模式: '遠程', 編輯:真, triggerAction: '全部', 這種變化的伎倆。 – Jorge

+0

我無法顯示標籤,但我添加了一個標籤類型項目到窗口,它工作正常。 – Jorge

回答

2

你的窗口需要有佈局: '形式' 的配置。爲了顯示字段,組合等,包含它們的佈局需要是一個表單。