2015-12-17 29 views
5

Kendo ızgarasında sütun ismini biliyorsak, tablodaki sütun indeksini bulabilmemizin bir yolu var mı?Kendo ızgarasındaki sütun isminden sütun ismini al Javascript

örn.

EmployeeID| Name 
123  | John 

Şebekede 'Name' alanının i.e. 1 dizinini bilmek istiyorum. Herhangi bir öneri.

Teşekkürler.

Sanjeev

+0

Dizin için neye ihtiyacınız var? Düzenlemeye/silmeye mi çalışıyorsunuz? Size yardımcı olabilmemiz için biraz daha bilgi vermeniz gerekiyor. –

+0

@ haakon319 Kılavuzumda sütunu gizlemem/göstermem gerekiyor. hideColumn/showColumn Kendo ızgarasında çalışıyor ancak performans gerçekten çok yavaş, denemek istedim, buradaki kolon indeksini gerektiren bu çözüm. http://stackoverflow.com/questions/30167893/kendo-grid-column-show-hide-making-issue-with-80-columns – sanjeev40084

cevap

6

aşağıda kod parçacığı ile deneyin.

<!DOCTYPE html> 
<html> 
<head> 
    <title>Jayesh Goyani</title> 
    <link rel="stylesheet" href="https://kendo.cdn.telerik.com/2015.2.902/styles/kendo.common-bootstrap.min.css" /> 
    <link rel="stylesheet" href="https://kendo.cdn.telerik.com/2015.2.902/styles/kendo.bootstrap.min.css" /> 
    <script src="https://kendo.cdn.telerik.com/2015.2.902/js/jquery.min.js"></script> 
    <script src="https://kendo.cdn.telerik.com/2015.2.902/js/kendo.all.min.js"></script> 
</head> 
<body> 
    <div id="example"></div> 
    <input type="text" id="txtColumnName" /> 
    <button onclick="GetColumnIndexFromName();">GetIndex</button> 
    <script> 
     $(document).ready(function() { 
      $("#example").kendoGrid({ 
       dataSource: { 
        type: "odata", 
        transport: { 
         read: "https://demos.telerik.com/kendo-ui/service/Northwind.svc/Customers" 
        }, 
        pageSize: 20 
       }, 
       height: 550, 
       groupable: true, 
       sortable: true, 
       pageable: { 
        refresh: true, 
        pageSizes: true, 
        buttonCount: 5 
       }, 
       columns: [{ 
        template: "<div class='customer-name'>#: ContactName #</div>", 
        field: "ContactName", 
        title: "Contact Name", 
        width: 240 
       }, { 
        field: "ContactTitle", 
        title: "Contact Title" 
       }, { 
        field: "CompanyName", 
        title: "Company Name" 
       }, { 
        field: "Country", 
        width: 150 
       }] 
      }); 
     }); 

     function GetColumnIndexFromName() { 
      var index = -1; 
      var strName = $("#txtColumnName").val(); 
      var grid = $("#example").data("kendoGrid"); 
      var columns = grid.options.columns; 
      if (columns.length > 0) { 
       for (var i = 0; i < columns.length; i++) { 
        if (columns[i].field == strName) { // columns[i].title -- You can also use title property here but for this you have to assign title for all columns 
         index = i; 
        } 
       } 
      } 

      if (index == -1) { 
       alert("column name not exists"); 
      } 
      else { 
       alert("column index is:- " + index); 
      } 
     } 
    </script> 
</body> 
</html> 

Sorun çıkarsa bana bildirin. İsterseniz Tabii

var grid = $('#grid').getKendoGrid(); 
grid.columns.find(function(v, i) { return grid.columns[i].field == 'myColumnName'; }) 

daha fazla filtreyi özelleştirebilirsiniz:

2

Bu kod sütun nesne verecektir.

+0

Bu teknik, sütunun ** index ** değerini almaz, ancak indeks yerine ihtiyaç duyduğum gerçek sütunu alır. – TLS

İlgili konular