我的应用程序中有这个剑道窗口
Html.Kendo().Window()
.Name("copyStructure")
.Title("Copy Structure")
.Content("Loading...")
.LoadContentFrom("CopyStructure", "NewXmlLayout") // <-- here*
.Draggable(false)
.Visible(false)
.Modal(true)
.Actions(s => s.Custom(""))
.Events(e => e.Open("openWindow").Close("closeWindow"))
我试图将数据传递到由 JavaScript 函数返回的 LoadContentFrom() 中的操作,但我不知道该怎么做。我可以这样传递数据:
.LoadContentFrom("CopyStructure", "NewXmlLayout", new { type= "INPUT" })
但这不是我要找的。
JS函数:
function getInfo() {
return { type: "INPUT" };
};
我的控制器:
public ActionResult CopyStructure(string type)
{
return PartialView();
}
如果您确实需要通过 JavaScript 访问您的数据getInfo()
函数,那么执行此操作的方法是像您正在做的那样定义窗口,但在打开窗口之前不要设置内容。打开窗口时,使用jQuery.ajax()
打电话CopyResult
,通过结果getInfo()
进入数据参数。
在你的剃须刀中,取出LoadContentFrom
添加一个事件处理程序Open
event:
@(Html.Kendo().Window()
.Name("copyStructure")
// Omitted for brevity
...
.Events(e => e.Open("copyStructure_Open"))
)
在 JavaScript 的处理程序中,调用$.ajax
并在success
回调,调用content
传递返回值的 Window 对象上的方法data
作为参数:
function copyStructure_Open(e) {
$.ajax({
url: '@Url.Action("CopyStructure", "NewXmlLayout")',
type: 'POST',
data: getInfo(),
success: function(data) {
e.sender.content(data);
}
});
}
请注意,仅发送窗口内容所需的内容,而不是完整的页面(DOCTYPE、html、head、body) - 请参阅 Telerik 的此文档:http://docs.telerik.com/kendo-ui/getting-started/web/window/overview#loading-window-content-via-ajax http://docs.telerik.com/kendo-ui/getting-started/web/window/overview#loading-window-content-via-ajax
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)