gpt4 book ai didi

angularjs - 以编程方式在 Kendo 网格 AngularJS 中选择一行

转载 作者:行者123 更新时间:2023-12-04 18:07:48 27 4
gpt4 key购买 nike

有人可以帮助我以 Angular 编程方式选择剑道网格行吗?我可以按行号选择一行。我无法想出一种方法来根据其列的内容来选择一行。

HTML:

 <body ng-controller="MainCtrl">
<p>Hello {{name}}!</p>
<div kendo-grid="myGrid" k-options="myOptions" k-selectable="'row'" k-on-change="myGridChange()"></div>
</body>

JS:
var app = angular.module('plunker', ['kendo.directives']);

app.controller('MainCtrl', function($scope) {
$scope.name = 'World';

$scope.myOptions = {
columns:[
{
field: 'ID'
},
{
field: 'FirstName'
},
{
field: 'LastName'
},
],
dataSource: [
{ID:139, FirstName:'John', LastName:'Doe'},
{ID:250, FirstName:'Jane', LastName:'Smith'},
{ID:376, FirstName:'Henry', LastName:'Rocks'}
],
dataBound:function(e) {
var grid = e.sender;
grid.select("tr:eq(2)");
grid.select("tr[FirstName='Henry'])"); // This doesn't work
}
};

$scope.myGridChange = function(){
var selectedRows = $scope.myGrid.select(); // This doesn't work
console.log($scope.myGrid.dataItem(selectedRows[0]));
};


});

此外,当以编程方式选择一行时,我的网格更改事件中出现错误。手动选择行时它工作正常。

这是我的笨蛋
http://plnkr.co/edit/PpDuSR10xNOxOVirDpfN?p=preview

最佳答案

将您的 dataBound 更改为此,这将在整个行中搜索该搜索词:

  dataBound:function(e) {
var searchTerm = "Henry";
var grid = e.sender;
grid.select("tr:contains('" + searchTerm + "')");
}

或者仅基于单个列进行搜索,请执行以下操作:
  dataBound:function(e) {
var grid = e.sender;
$.each(grid.tbody.find('tr'),function(){
var model = grid.dataItem(this);
if(model.FirstName=="Henry"){
grid.select(this);
}
});
}

至于您的控制台错误,请添加 id="grid"到索引页面上的网格上,并将 myGridChange 替换为:
$scope.myGridChange = function(){
var grid = $scope.myGrid;
if(!grid)
grid = $("#grid").data("kendoGrid");
var selectedRows = grid.select();
var data = grid.dataItem(selectedRows[0]);
console.log("The name is " + data.FirstName + ", "+ data.FirstName + " " + data.LastName);
};

您收到控制台错误,因为网格未附加到数据绑定(bind)函数中 select 命令上的 $scope,导致网格引用为空。我对 Angular JS 了解不多,但我通过分配网格和 ID,然后从该 ID 选择器获取网格,在上面做了一个 hack 解决方案。

关于angularjs - 以编程方式在 Kendo 网格 AngularJS 中选择一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22717026/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com