Javascript 剑道网格-如何获取选定行的行详细信息?
作为剑道网格升级的一部分,我的一些旧代码似乎由于实现的变化而无法工作 我使用了Javascript 剑道网格-如何获取选定行的行详细信息?,javascript,jquery,kendo-ui,kendo-grid,kendo-asp.net-mvc,Javascript,Jquery,Kendo Ui,Kendo Grid,Kendo Asp.net Mvc,作为剑道网格升级的一部分,我的一些旧代码似乎由于实现的变化而无法工作 我使用了事件。Change触发行单击事件(下面的示例代码) 在我的onRowSelected(e)方法中,我使用 e.row.cells[0].innerHTML e.行现在未定义。 现在正确的使用方法是什么? 使用事件。更改选定行功能的正确方法是什么?以下是有关如何获取选定行详细信息的参考。单击行以获取其详细信息 var gview = $("#grid").data("kendoGrid"); //Getting sel
事件。Change
触发行单击事件(下面的示例代码)
在我的onRowSelected(e)
方法中,我使用
e.row.cells[0].innerHTML
e.行现在未定义。
现在正确的使用方法是什么?
使用
事件。更改选定行功能的正确方法是什么?以下是有关如何获取选定行详细信息的参考。单击行以获取其详细信息
var gview = $("#grid").data("kendoGrid");
//Getting selected item
var selectedItem = gview.dataItem(gview.select());
alert(selectedItem.ShipName);
示例-使用行选择时获取所选数据项
<div id="grid"></div>
<script>
function grid_change(e) {
var selectedCells = this.select();
var selectedDataItems = [];
for (var i = 0; i < selectedCells.length; i++) {
var dataItem = this.dataItem(selectedCells[i].parentNode);
if ($.inArray(dataItem, selectedDataItems) < 0) {
selectedDataItems.push(dataItem);
}
}
// selectedDataItems contains all selected data items
}
$("#grid").kendoGrid({
columns: [
{ field: "name" },
{ field: "age" }
],
dataSource: [
{ name: "Jane Doe", age: 30 },
{ name: "John Doe", age: 33 }
],
selectable: "multiple, cell"
});
var grid = $("#grid").data("kendoGrid");
grid.bind("change", grid_change);
</script>
同样,您也可以使用html帮助器来完成。onchange事件
<div id="grid"></div>
<script>
$("#grid").kendoGrid({
columns: [
{ field: "name" },
{ field: "age" }
],
dataSource: [
{ name: "Jane Doe", age: 30 },
{ name: "John Doe", age: 33 }
],
selectable: "multiple, row",
change: function(e) {
var selectedRows = this.select();
var selectedDataItems = [];
for (var i = 0; i < selectedRows.length; i++) {
var dataItem = this.dataItem(selectedRows[i]);
selectedDataItems.push(dataItem);
}
// selectedDataItems contains all selected data items
}
});
</script>
$(“#网格”).kendoGrid({
栏目:[
{字段:“名称”},
{字段:“年龄”}
],
数据源:[
{姓名:“Jane Doe”,年龄:30},
{姓名:“约翰·多伊”,年龄:33}
],
可选:“多行,行”,
更改:功能(e){
var selectedRows=this.select();
var selectedDataItems=[];
for(var i=0;i
示例-使用单元格选择时获取所选数据项
<div id="grid"></div>
<script>
function grid_change(e) {
var selectedCells = this.select();
var selectedDataItems = [];
for (var i = 0; i < selectedCells.length; i++) {
var dataItem = this.dataItem(selectedCells[i].parentNode);
if ($.inArray(dataItem, selectedDataItems) < 0) {
selectedDataItems.push(dataItem);
}
}
// selectedDataItems contains all selected data items
}
$("#grid").kendoGrid({
columns: [
{ field: "name" },
{ field: "age" }
],
dataSource: [
{ name: "Jane Doe", age: 30 },
{ name: "John Doe", age: 33 }
],
selectable: "multiple, cell"
});
var grid = $("#grid").data("kendoGrid");
grid.bind("change", grid_change);
</script>
功能网格变更(e){
var selectedCells=this.select();
var selectedDataItems=[];
对于(变量i=0;i
我必须使用events.change触发行单击事件
@(Html.Kendo().Grid(Model.BankSearchList).Name("Grid")
.Events(events =>
{
events.Change("onRowSelected");
})
然后将onRowSelected
功能处理为:
<script>
var selectedRow = null;
//onRowSelected
function onRowSelected(e)
{
var row = this.select();
if (row.length > 0 )
{
selectedRow = e.sender.select();
var item = e.sender.dataItem(selectedRow);
}
}
</script>
var selectedRow=null;
//在行选择
函数onRowSelected(e)
{
var row=this.select();
如果(行长度>0)
{
selectedRow=e.sender.select();
var item=e.sender.dataItem(selectedRow);
}
}
因此,item变量包含您需要的所有详细信息。对于使用AngularJS的用户:
$scope.gridOptions = {
dataSource: gridDataSource,
columns: [
{ field: 'name' },
{ field: 'phone' }
],
selectable: 'row',
change: function () {
var selectedRows = this.select();
var rowData = this.dataItem(selectedRows[0]);
console.log(rowData.name + ' ' + rowData.phone);
};
};
确保在网格选项中有可选:“行”
或可选:“多行,行”
。功能已选定(e){
function onRowSelected(e) {
var gview = $("#grid").data("kendoGrid");
//Getting selected item
var selectedItem = gview.dataItem(gview.select());
var colValue = selectedItem["<columnName>"];
}
var gview=$(“#网格”).data(“kendoGrid”);
//获取所选项目
var selectedItem=gview.dataItem(gview.select());
var colValue=selectedItem[“”);
}
谢谢,我假设必须使用grid.selective()才能使其正常工作?请详细说明问题所在以及您是如何解决的。显示代码很好,解释更好