2013-11-12 2 views
0

Я добавил kendoDropDownList в одну из ячеек в kendoGrid, и он отлично работает в первую очередь. Однако, когда я нажимаю на заголовок столбца для сортировки, ячейка теряет свое форматирование. Кто-нибудь знает, как это предотвратить? Вот простой пример:kendoDropDownList сброс внутри kendoGrid после сортировки

<html> 
<head> 
    <title>test</title> 
    <link href="/kendoui.web.2013.2.716.open-source/styles/kendo.common.min.css" rel="stylesheet" type="text/css"/> 
    <link href="/kendoui.web.2013.2.716.open-source/styles/kendo.default.min.css" rel="stylesheet" type="text/css"/> 
    <script src="/kendoui.web.2013.2.716.open-source/js/jquery.min.js"></script> 
    <script src="/kendoui.web.2013.2.716.open-source/js/kendo.web.min.js" type="text/javascript"></script> 
</head> 
<body> 
    <table class="gridTable"> 
     <thead> 
     <tr> 
      <th data-field="name">Name</th> 
      <th data-field="options">Options</th> 
     </tr> 
     </thead> 
     <tbody> 
     <tr> 
      <td class="wrap">Item</td> 
      <td> 
       <select class="menuBar" style="width:80px;"> 
        <option>Big</option> 
        <option>Medium</option> 
        <option>Small</option> 
       </select> 
      </td> 
     </tr> 

     </tbody> 
    </table> 
    <script type="text/javascript"> 
     $(document).ready(function() { 
      $(".gridTable").kendoGrid({ 
       sortable: true 
      }); 

      $(".menuBar").kendoDropDownList({ 
      }); 
     }); 
    </script> 
</body> 
</html> 
+0

Как ни странно, если вы замените инициализацию gridTable и menuBar внизу, выпадающие списки не работают, но когда вы их сортируете, css не разделяется. –

+0

Я не мог найти способ предотвратить переформатирование, но обнаружил, что событие dataBound вызывается после инициализации сетки и каждый раз, когда он сортируется, так что это работает: $ (document) .ready (function () { $ (»gridTable. ") kendoGrid ({ сортируемым: правда, DataBound: функция (е.) { вар эль = e.sender.element [0]; $ (эл) .find (". menuBar "). kendoDropDownList ({}); } }); }); Может быть лучше использовать переменную e.sender.element [0], но я не смог ее найти. –

ответ

1

Сетка перестраивается каждый раз, когда вы выполняете страницу/Sort/Group и т.д. Для таких случаев необходимо использовать dataBound событие Энергосистемы повторно инициализировать любые виджеты или выполняются любым JavaScript код, который влияет на то, что отображается в Grdi.