在 Javascript 部分分配 kendo 网格的数据源。 (Asp.net MVC-Razor 引擎)
assigning Datasource of kendo grid in Javascript part. (Asp.net MVC-Razor Engine)
我想在视图的 Javascript 部分分配 kendo 网格的数据源,因为我想显示它以响应从另一个 kendo 网格中选择另一个对象在同一页面上,所以我想将此对象的值传递回控制器,然后查看网格。
我发现最好的方法是在选择部分相关的javascript函数中分配数据源,如果有更好的想法,请提出。
Kendo 网格:
@(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中这部分怎么写:(assigning the read and the model) ?
.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 将一些变量传递给读取部分,我发现这比kendo:
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);
}
})
}
以及问题的编辑部分
我想在视图的 Javascript 部分分配 kendo 网格的数据源,因为我想显示它以响应从另一个 kendo 网格中选择另一个对象在同一页面上,所以我想将此对象的值传递回控制器,然后查看网格。
我发现最好的方法是在选择部分相关的javascript函数中分配数据源,如果有更好的想法,请提出。
Kendo 网格:
@(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中这部分怎么写:(assigning the read and the model) ?
.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 将一些变量传递给读取部分,我发现这比kendo:
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);
}
})
}
以及问题的编辑部分