2012-03-27 2 views
3

Hallo Ich habe eine jqgrid mit einem Popup zum Bearbeiten. Einige der bearbeitbaren Eigenschaften können durch Auswahl bearbeitet werden. Dies ist ein Beispiel für den Code für einen der wählt:jqgrid editierbare Dropdown-Breite ist auf einen minimalen Wert in IE8 gesetzt

{ name: 'PaymentTypeLookupId', index: 'PaymentTypeLookupId', width: 150, align: 'center', editable: true, editrules: { required: true }, edittype: "select", editoptions: { dataUrl: '/Invoice/GetPayments/', 
        buildSelect: function (data) { 
         var response = jQuery.parseJSON(data); 

         var s = '<select>'; 

         if (response.rows && response.rows.length) { 
          for (var i = 0, l = response.rows.length; i < l; i++) { 
           var ri = response.rows[i]; 
           s += '<option value="' + ri.Id + '">' + ri.Name + '</option>'; 
          } 
         } 
         return s + "</select>"; 
        } 
       } 

Dies funktioniert in IE8, wenn es um compatibilty Modus eingestellt ist. Jedoch, wenn sie nicht im Kompatibilitätsmodus hat das Drop-Down eine wirklich geringe Breite, bis Sie setzen darauf klicken um eine Option auszuwählen und es stellt sich auf eine gute Größe:

enter image description here

Die Zahlung Typ Drop-Down hat tatsächlich Elemente drin aber bis zum Klicken darauf ist die Breite wie gezeigt.

Kennt jemand eine Lösung dafür?

+0

Welche Version jqGrid Sie verwenden? Das Problem war in einigen alten Versionen, aber es sollte jetzt behoben werden. – Oleg

+0

4.1.1 Ist diese Version zu alt? – AnonyMouse

+0

gerade aktualisiert bis 4.3.1 immer noch gleich – AnonyMouse

Antwort

2

Ich habe versucht, das Problem, das Sie beschrieben haben, zu reproduzieren, aber ohne Erfolg. The demo, wo ich explizit jqGrid 4.1.1 Formularbearbeitungsdialog ohne jedes Problem füllen.

Sie sollten eine Demo vorbereiten, mit der Sie Ihr Problem reproduzieren können. Als Abhilfe können Sie width des Auswahl explizit festlegen:

{ name: 'PaymentTypeLookupId', ... 
    editoptions: { 
     dataUrl: '/Invoice/GetPayments/', 
     buildSelect: function (data) { 
      ... 
     }, 
     style: "width: 150px" 
    }} 

siehe the demo

Verwandte Themen