2014-01-16 4 views
0

У меня есть сетка кендо, чьи строчные строки заполнены редактируемыми сетками всплывающего режима создания. Внутри каждой из этих окон создания всплывающих окон я использую, среди прочего, кэндо автозаполнения виджета:kendo ui requestEnd событие срабатывает только один раз. Зачем?

    $("#labResponsibleRegistryNo").kendoAutoComplete({ 
         dataSource: labResponsiblesDS, 
         dataTextField: "fullname",        
         template: "<div class='labResponsiblesTemplate'>\ 
             <span class='template_fullname'> #= lastname + ' ' + firstname #</span>\ 
             <div class='template_details'>\ 
              <span> ΑΜ </span>\ 
              <span class='template_data'> #= registry_no # </span>\ 
             </div>\ 
            <div>", 
         minLength: 3 
         //suggest: true, 
        }); 

который я связать с источником данных labResponsiblesDS ниже:

 var labResponsiblesDS= new kendo.data.DataSource({ 
      serverFiltering: true, 
      transport: { 
       read: { 
        url: "api/workers", 
        type: "GET", 
        data: {}, 
        dataType: "json" 
       }, 
       parameterMap: function(data, type) { 
        if (type === 'read') { 
         data["worker"] = data.filter.filters[0].value; 
         delete data.filter; 
        } 
        return data; 
       } 
      }, 
      schema: { 
       data: "data", 
       total: "total" 
      }, 
      requestEnd: function(e) { 
       console.log("labResponsiblesDS requestEnd", e); 
       if(e.response.data.length > 0){ 
        var results_no = e.response.data.length; 
        for(var i=0;i<results_no;i++){ 
         e.response.data[i].fullname = e.response.data[i].lastname + " " + e.response.data[i].firstname; 
        } 
       } 
      } 
     }); 

В запрос End случае labResponsiblesDS «ы, Я создаю в каждом из результатов, возвращаемых с сервера, дополнительное поле «полное имя», которое является конкатенацией двух полей, возвращаемых «lastname» и «firstname». «fullname» используется в dataTextField автозаполнения.

Моя проблема заключается в том, что после достижения желаемой функциональности виджета автозаполнения внутри окна создания всплывающего окна вложенной сетки, когда я закрываю это всплывающее окно и снова открываю его или открываю всплывающее окно другой вложенной сетки, событие requestEnd FAILS запускается. Любые советы были бы очень благодарны. Заблаговременно

+0

Я предполагаю, что это только один раз ударило или изначально причину считывания данных первоначально на первую страницу. Поскольку фильтрация сервера устанавливает значение «true», если вы нажмете кнопку разбиения на страницы, она должна получить еще один удар. Я получаю право ??? у вас есть сетка, и вы используете автозаполнение kendo в сетке .., которое находится во всплывающем редактировании .. не inline .. в этом почему вы не используете опцию «editor» в объявлении столбца? – Mahib

ответ

0

Вставьте значение полного имени прямо в вашу схему. Вам просто нужно будет реализовать schema.data как анонимные функции, и образуют FULLNAME там:

schema: { 
    data: function(data) { 
     for (var i = 0; i < data.length; ++i) { 
      data[i].fullname = data[i].lastname + " " + data[i].firstname; 
     } 
     return data; 
    }, 
    total: "total" 
} 
Смежные вопросы