我有一个剑道网格,如下。
@(Html.Kendo().Grid<RevenueModel>()
.Name("WeeklyRevenue")
.Resizable(resizing => resizing.Columns(true))
.Columns(columns =>
{
columns.Bound(p => p.Number).Width(100);
columns.Bound(p => p.Type).Width(100);
columns.Bound(p => p.Week1).Format("{0:c}");
columns.Bound(p => p.Week2).Format("{0:c}");
columns.Bound(p => p.Week3).Format("{0:c}");
columns.Bound(p => p.Week4).Format("{0:c}");
columns.Bound(p => p.Week5).Format("{0:c}");
columns.Bound(p => p.TotalRevenue).Format("{0:c}");
})
.Scrollable()
.Events(events => events.Change("onChange").DataBound("onDataBound"))
.DataSource(dataSource => dataSource.Ajax().Read(read => read.Action("WeeklyRevenue", "Home")).ServerOperation(false))
.Pageable(pager => pager.Refresh(true))
)
这是我的 Controller 代码
public ActionResult WeeklyRevenue([DataSourceRequest]DataSourceRequest request)
{
...
DataSourceResult result = res.ToDataSourceResult(request);
return Json(result, JsonRequestBehavior.AllowGet);
}
效果很好。但我想在 Grid 读取数据时发送额外的数据,如下所示;
public ActionResult WeeklyRevenue([DataSourceRequest]DataSourceRequest request, string AdditionalParam)
我找不到任何解决方案来执行此操作。提前致谢。
最佳答案
如果服务器端已知附加数据,您应该使用接受路由值的 Action 方法的重载:
.DataSource(dataSource => dataSource.Server()
.Read(read => read.Action("Read", "Home",
new { AdditionalParam = ViewData["AdditionalParam"] }))
)
如果只有客户端知道此附加数据,您应该使用 Data 方法:
.DataSource(dataSource => dataSource.Ajax()
.Read(read => read
.Action("Read", "Home")
.Data("additionalData")
)
)
<script>
function additionalData() {
return {
AdditionalParam: $("#search").val()
};
}
</script>
关于asp.net - 在 Kendo 网格读取操作中发送附加参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23222867/