在Javascript部分分配剑道网格的数据源.(Asp.net MVC-Razor Engine)

assigning Datasource of kendo grid in Javascript part. (Asp.net MVC-Razor Engine)

本文关键字:Asp 数据源 net MVC-Razor Engine 网格 Javascript 分配      更新时间:2023-09-26

我想在视图的Javascript部分中分配剑道网格的数据源,因为我想在同一页面上从另一个kendogrid中选择另一个对象时显示它,所以我想将这个对象的值传递给控制器,然后查看网格。

我发现最好的方法是在与选择部分相关的javascript函数中分配数据源,如果有更好的想法,请提出。

剑道栅格:

@(Html.Kendo().Grid<dynamic>()
.Name("StatusGrid")
//.HtmlAttributes(new { style="width:50%;" })
.Columns(columns =>
{
    foreach (System.Data.DataColumn c in Model.GridStatus.Columns)
    {
        columns.Bound(c.ColumnName).EditorTemplateName("String");
    }
})
.DataSource(dataSource => dataSource
    .Ajax()
    .Events(events => events.Error("error_handler"))
    .Model(model =>
    {
        foreach (System.Data.DataColumn column in Model.GridStatus.Columns)
        {
            model.Field(column.ColumnName, column.DataType);
            model.Id("Id");
        }
    })
    //.Read(read =>
    //  read.Action("ActivityGridDisplay", "Configuration")
    //)
))

那么如何在javascript中编写这部分:(分配读取和模型)?

    .DataSource(dataSource => dataSource
    .Ajax()
    .Events(events => events.Error("error_handler"))
    .Model(model =>
    {
        foreach (System.Data.DataColumn column in Model.GridStatus.Columns)
        {
            model.Field(column.ColumnName, column.DataType);
            model.Id("Id");
        }
    })
    .Read(read =>
        read.Action("ActivityGridDisplay", "Configuration")
    )
))

可以用一种更简单的方式完成,只需使用ajax分配或绑定读取部分,甚至可以使用javascript传递一些变量,我发现这比剑道更容易:

function onChange(e) {
    var grid = $("#grid").data("kendoGrid");
    var dataRows = grid.items();
    var rowIndex = dataRows.index(grid.select());
    var selectedname = grid.dataItems()[rowIndex];
    document.getElementById("ActivityGrid").style.bottom = "0px";
    $.ajax({
        url: '/Configuration/ActivityGridDisplay',
        contentType: 'application/html charset=utf-8',
        type: 'GET',
        dataType: 'html',
        data: { 'nodeName': selectedname.Name, 'nodeType': selectedname.Type, 'nodeID': selectedname.NodeId },
        success: function (data) {
            $('#body').html(data);
        }
    })

}

和问题的编辑部分