【发布时间】:2014-12-05 10:20:52
【问题描述】:
我在剃刀视图中有以下剑道网格
@(Html.Kendo().Grid<PO>()
.Name("manualMatchGrid")
.Columns(columns =>
{
BindFields(columns);
})
.Selectable(s => s.Mode(GridSelectionMode.Multiple))
.Pageable()
.Sortable()
.DataSource(dataSource =>
dataSource.Ajax()
.Batch(true)
.PageSize(20)
.ServerOperation(false)
.Model(model =>
{
model.Id(l => l.Id);
})
.Read(read => read.Action("ReadInvoicePOs", "Invoice", new { invoiceID = ViewBag.InvoiceID }).Data("getInvoicePOsFilterData"))
)
.Pageable()
.Navigatable()
)
还有 getInvoicePOsFilterData javascript 函数...
<script>
function getInvoicePOsFilterData() {
return {
pONumber: $('#PONumber').val(), vendorId: $('#VendorId').val(), clientId: $('#ClientId').val()
};
}
</script>
查看 chrome 网络检查器...
Data InvoiceId,即 routeData,没有发送任何内容。我错过了什么。
编辑:
控制器...
[AcceptVerbs(HttpVerbs.Get)]
public JsonResult ReadInvoicePOs([DataSourceRequest]DataSourceRequest request, int invoiceId, string pONumber, int? vendorId, int clientId)
{
var pOs = dynamicPOManager.GetPOs(invoiceId, clientId, pONumber);
DataSourceResult result = pOs.ToDataSourceResult(request);
return Json(result, JsonRequestBehavior.AllowGet);
}
【问题讨论】:
-
请同时发布服务器端代码..
-
我刚做了。但问题是,它甚至没有进入 ReadInvoicePOs 操作,因为需要 clientId。
-
只允许使用字符串类型。在json请求中..将您的参数类型更改为仅字符串..稍后将它们转换...然后应该可以工作
-
我实际上将随机数作为占位符,我使用 jQuery 从控件中读取值,因此我实际上传递了字符串。但我已经弄清楚了问题所在。看看我的回答。还是谢谢你
标签: razor kendo-ui kendo-grid kendo-asp.net-mvc