2017-09-23 2 views
0

dans ma grille de kendo quand je veux ajouter un nouvel enregistrement la fenêtre d'ajout apparaît, je veux ajouter une liste déroulante là, parce que j'ai besoin de cette liste déroulante seulement si je veux ajouter un nouvel enregistrement, l'approche fowlloing ne fonctionne pas, signifie que je ne peux pas voir la liste des dopdown:comment ajouter dropdownlist à kendo pop up éditeur si le bouton Ajouter est appuyé

edit:function(e) { if (e.model.isNew()) { $("DeviceType") 
           .appendTo(container) 
           .kendoDropDownList({          
           dataTextField: "Text", 
           dataValueField: "Text", 
           valuePrimitive: true, 
           dataSource: mydata_deviceType,}}} 

mes champs de la grille:

columns: [ 
            { field: 'DeviceIP', title: 'DeviceIP', width: '100px', id: 'DeviceIP' }, 
            { field: 'Producer', title: 'Producer', width: '80px', id: 'Producer' },//editor: ProductNameDropDownEditor, 
            { field: 'Model', title: 'Model', width: '220px', id: 'Model' }, 
            { field: 'DeviceType', title: 'DeviceType', width: '100px', id: 'DeviceType', editor: deviceTypesList }, 
            { field: 'Description', title: 'Description', width: '220px' }, 
            { field: 'Username', title: 'Username', width: '120px' }, 
            { field: 'Password', title: 'Password', width: '100px' }, 
            { field: 'PublicIP', title: 'PublicIP', width: '120px', id: 'PublicIP' }, 
            { field: 'TurbineId', title: 'TurbineId', width: '120px', id: 'TurbineId', hidden: true }, 
            { field: 'device_id', title: 'device_id', width: '120px', id: 'deviceid', hidden: true }, 
            { field: 'ModelProducer', title: 'Producer/Model', hidden: true, editor: modelProducer }, 
            { 
             command: ["edit"], title: " " 

            } 
          ], 

la fonction modelProducer:

function modelProducer(container, options) { 


          var t = modelProducerResult; 

          $('<input name="ModelProducer" id="ModelProducer" data-type="string" style="width: 100%"\">') 
          .appendTo(container) 
          .kendoDropDownList({ 


           dataSource: modelProducerResult, 
           dataTextField: "model", 
           dataValueField: "model", 
           valuePrimitive: true,         
           change: upnChange 

          }); 

          debugger; 

         } 
+0

Il n'y a pas de sélecteur jQuery comme $ ("DeviceType"), vous devrait utiliser le sélecteur de nom comme ceci $ ("input [name = DeviceType]"). –

+0

@RKSaini even $ ('') ne fonctionne pas – bravo83

+0

Le champ portant ce nom (DeviceType) existe-t-il dans votre grille? Et assurez-vous qu'il est également éditable –

Répondre

0

Vous pouvez ajouter un éditeur en fonction du mode ajouter/modifier. il suffit de changer votre fonction éditeur comme ceci:

function deviceTypesList(container, options) { 
    if (options.model.isNew()) { 
     $('<input name="' + options.field + '"/>') 
       .appendTo(container) 
       .kendoDropDownList({ 
        dataTextField: "Text", 
        dataValueField: "Text", 
        valuePrimitive: true, 
        dataSource: mydata_deviceType 
       }); 
    } 
    else 
    { 
     $('<input type="text" class="k-input k-textbox" name="DeviceType"">') 
       .appendTo(container); 
    } 
} 

Voici une démonstration de travail http://dojo.telerik.com/IReWe

Je l'espère vous aide :)

+0

c'est super mais comme vous voyez dans ma question j'ai une autre fonction, Regardez ma grille s'il vous plaît, l'autre fonction est modelProducer, où dois-je mettre cela dans votre approche? Et cette fonction lie ma seconde liste déroulante basée sur la première fonction (deviceType) – bravo83

+0

Je ne pense pas que vous devez ch ange cette fonction. Bien que vous puissiez obtenir la valeur du DeviceType en utilisant option.model.DeviceType et modifier la liste déroulante en conséquence –

+0

@ merci, et $ ('') par option.field vous voulez dire quoi? dois-je écrire quelque chose là? – bravo83