javascript - 每行选择仅触发一次 Kendo 网格更改事件

标签 javascript jquery asp.net-mvc-4 kendo-ui kendo-grid

在一个 MVC4 项目中,我有一个剑道网格,它会在选择一行时触发一个事件。

<div id="datagrid">
@(Html.Kendo().Grid<SustIMS.Models.StretchModel>()
    .Name("datagrid_Stretches")
    .Columns(columns =>
    {
        columns.Bound(s => s.StretchCode).Title(ViewBag.lblCode).Width(80);
        columns.Bound(s => s.StretchMediumDescription).Title(ViewBag.lblDescription);
        ...
    })
    .Events(e => e.Change("onChange"))    <--------- here's the event
    .DataSource(dataSource => dataSource
        .Ajax()
        .PageSize(15)
        .Read(read => read.Action("GetStretches", "MasterData"))
    )
)
</div>

因此,当我选择一行时,调用 onChange 函数:

function onChange() {
    var code = this.dataItem(this.select()).StretchCode;
    $.get('@Url.Content("getStretchCode")',
        { "code": code });
}

在我的 Controller 中,检索代码并用它完成一些操作。

public void getStretchCode(string code)
{
    currentStretch.RoadComponentCode = code;
    ...
}

这很好用。问题是,每次我选择不同的行时都会触发事件,但如果我选择以前选择的行,则不会触发事件,我无法获取该行的代码。

有什么帮助吗?

最佳答案

在您的网格中添加 .Selectable(),这样您就可以选择之前的行。

@(Html.Kendo().Grid<SustIMS.Models.StretchModel>()
    .Name("datagrid_Stretches")
    .Columns(columns =>
    {
        columns.Bound(s => s.StretchCode).Title(ViewBag.lblCode).Width(80);
        columns.Bound(s => s.StretchMediumDescription).Title(ViewBag.lblDescription);
        ...
    })
 .Selectable(selectable => selectable
            .Type(GridSelectionType.Row)  <--------- Add This
            )
    .Events(e => e.Change("onChange"))    
    .DataSource(dataSource => dataSource
        .Ajax()
        .PageSize(15)
        .Read(read => read.Action("GetStretches", "MasterData"))
    )
)

脚本

function onChange() {
    var code = this.dataItem(this.select()).StretchCode;
    $.post('@Url.Content("getStretchCode")',
        { "code": code });
}

关于javascript - 每行选择仅触发一次 Kendo 网格更改事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24997246/

相关文章:

javascript - Typescript 接口(interface)可选属性取决于其他属性

像 JetBrains dotTrace 这样的 JavaScript Profiler?

jQuery显示数据索引大于或等于的所有容器

jQuery 动画百分比数字?

c# - Linq 选择最新的组层次结构

javascript - 替换表格每一行的所有div标签

javascript - 在 Laravel 中将 JavaScript 作为外部脚本运行

javascript - 获取div内的鼠标位置?

asp.net-mvc-4 - OAuthWebSecurity.VerifyAuthentication IsSuccessful 返回 false 如何确定原因?

javascript - 在调整大小时检测 div 高度