如何在KendoUI中获取选定的行值 [英] how to get selected row value in the KendoUI

查看:1390
本文介绍了如何在KendoUI中获取选定的行值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述


$ b

  @(Html.Kendo()。Grid< EntityVM>()
.Name(EntitesGrid)
.HtmlAttributes(new {style =height:750px; width:100%; scrollbar-face-color:#eff7fc;})
.Columns(columns = >
{
columns.Bound(e => e.Id).Hidden().includeInMenu(false);
columns.Bound(e => e.EntityVersionId)。 Hidden()。IncludeInMenu(false);
columns.Bound(e => e.Name).Width(70%)。Title(Entity Name);
columns.Bound e => e.EIN).Width(30%);
})
.ToolBar(toolBar => toolBar.Template(< a class ='k- button k-按钮图标文字k-grid-add'id ='addEntity'>< span class ='k-icon k-add'>< / span>实体< / a>+
<一个class ='k-button k-button-icontext 'id ='editEntity'>< span class ='k-icon k-edit'>< / span>编辑< / a>))
.DataSource(dataSource => dataSource
.Ajax()。ServerOperation(false)
.Model(model => model.Id(e => e.Id))
.Read(read => read .Action(GetEntities,Entity,new {projectId = Request.QueryString [DataKeyNameConstants.ProjectId]})))
.Sortable()
.Scrollable()
.Filterable )
.Resizable(resize => resize.Columns(true))
.Reorderable(reorder => reorder.Columns(true))
.ColumnMenu()
。可选(s => s.Mode(GridSelectionMode.Multiple))
.Events(events => events.Change(entSelChange))

现在,我需要从所选行中获取EntityVersionId的值。但不知道如何去做。



这是我的javascript函数

  $(#editEntity)。click(function(){

var entityGrid = $(#EntitesGrid)。data(kendoGrid);

/ /我应该从这里做
});

更新:添加循环所有行的代码。

 函数loadPreviousEntityVersion(){

alert(sdfsdfsdf);
var entityGrid = $(#EntitesGrid)。data(kendoGrid);
var data = entityGrid.dataSource.data();

for(var i = 0; i< data.length; i ++){
var currentDataItem = data [i];
alert(dataItem.EntityVersionId);


$ b


解决方案

一种方法是使用Grid的 select() dataItem() 方法。

在单选情况下, select()将返回一个可以传递给 dataItem()

  var entityGrid = $(#EntitesGrid)。data kendoGrid); 
var selectedItem = entityGrid.dataItem(entityGrid.select());
// selectedItem具有EntityVersionId和模型的其余部分

对于多行选择 select()将返回一个行数组。然后,您可以迭代数组,并将各行传递到网格的 dataItem()

  var entityGrid = $(#EntitesGrid)。data(kendoGrid); 
var rows = entityGrid.select();
rows.each(function(index,row){
var selectedItem = entityGrid.dataItem(row);
// selectedItem有EntityVersionId和模型的其余部分
}) ;


I have a kendoUI grid.

                @(Html.Kendo().Grid<EntityVM>()
                    .Name("EntitesGrid")
                                .HtmlAttributes(new { style = "height:750px;width:100%;scrollbar-face-color: #eff7fc;" })
                    .Columns(columns =>
                    {
                        columns.Bound(e => e.Id).Hidden().IncludeInMenu(false);
                        columns.Bound(e => e.EntityVersionId).Hidden().IncludeInMenu(false);
                        columns.Bound(e => e.Name).Width("70%").Title("Entity Name");
                        columns.Bound(e => e.EIN).Width("30%");
                    })
        .ToolBar(toolBar => toolBar.Template("<a class='k-button k-button-icontext k-grid-add' id='addEntity'><span class='k-icon k-add'></span>Entity</a>" +
             "<a class='k-button k-button-icontext' id='editEntity'><span class='k-icon k-edit'></span>Edit</a>"))
                    .DataSource(dataSource => dataSource
                    .Ajax().ServerOperation(false)
                    .Model(model => model.Id(e => e.Id))
                    .Read(read => read.Action("GetEntities", "Entity", new { projectId = Request.QueryString[DataKeyNameConstants.ProjectId] })))
                    .Sortable()
                    .Scrollable()
                    .Filterable()
                    .Resizable(resize => resize.Columns(true))
                    .Reorderable(reorder => reorder.Columns(true))
                    .ColumnMenu()
                    .Selectable(s => s.Mode(GridSelectionMode.Multiple))
                    .Events(events => events.Change("entSelChange"))
            )

now, I need to get the value of EntityVersionId from the selected Row. but not sure how to do it.

here's my javascript function

$("#editEntity").click(function () {

    var entityGrid = $("#EntitesGrid").data("kendoGrid");

    // what should I do from here
});

UPDATE: add code to loop all rows.

function loadPreviousEntityVersion() {

    alert("sdfsdfsdf");
    var entityGrid = $("#EntitesGrid").data("kendoGrid");
    var data = entityGrid.dataSource.data();

    for(var i = 0; i<data.length; i++) {
        var currentDataItem = data[i];
        alert(dataItem.EntityVersionId);

    }
}

解决方案

One way is to use the Grid's select() and dataItem() methods.

In single selection case, select() will return a single row which can be passed to dataItem()

var entityGrid = $("#EntitesGrid").data("kendoGrid");
var selectedItem = entityGrid.dataItem(entityGrid.select());
// selectedItem has EntityVersionId and the rest of your model

For multiple row selection select() will return an array of rows. You can then iterate through the array and the individual rows can be passed into the grid's dataItem().

var entityGrid = $("#EntitesGrid").data("kendoGrid");
var rows = entityGrid.select();
rows.each(function(index, row) {
  var selectedItem = entityGrid.dataItem(row);
  // selectedItem has EntityVersionId and the rest of your model
});

这篇关于如何在KendoUI中获取选定的行值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆