我有一个窗口:
@(Html.Kendo().Window()
.Name("wndInvoiceLineEditor")
.Title("Invoice Line Item Editor")
.Content("loading dialog...")
.Height(350)
.Width(785)
.LoadContentFrom("InvoiceLineItemEditor", "Invoice", new { LineItemId = "Initial" })
.Draggable()
.Resizable()
.Visible(false)
)
我需要能够重新加载该部分视图,并在运行时传递不同的数据。据我在文档中阅读,我应该能够做到这一点:
$("#wndInvoiceLineEditor").data("kendoWindow").refresh({
data: {
LineItemId: $($(".k-state-selected td")[0]).text()
}
});
但是动作服务器端:
public ActionResult InvoiceLineItemEditor(string LineItemId)
{
int id = 0;
if(string.IsNullOrEmpty(LineItemId) || !int.TryParse(LineItemId, out id))
{
return PartialView("InvoiceLineItemEditorPartial", new InvoiceLineItem());
}
...blah blah blah
...没有收到正确的 ID(从表中获取它的 jquery 确实有效,已通过 Chrome 控制台进行了测试)
相反,它接收视图中配置的数据:“初始”。
我错过了什么吗?如何将数据发送回操作,以便我可以使用正确的信息加载该部分?
回答:
问题是视图中窗口初始化的 LoadContentFrom 部分中设置的默认数据。将其更改为:
@(Html.Kendo().Window()
.Name("wndInvoiceLineEditor")
.Title("Invoice Line Item Editor")
.Content("loading dialog...")
.Height(350)
.Width(785)
.LoadContentFrom("InvoiceLineItemEditor", "Invoice")
.Draggable()
.Resizable()
.Visible(false)
)
...解决问题。窗口被设置为该默认值,看似不可移动。