我在ASP.NET MVC 3中工作并使用Telerik。我有一个空的telerik窗口。我的目标是只在用户点击按钮时向服务器询问内容,但我不知道如何做到这一点。我想,要实现这一点,我需要存储对telerik窗口的引用。但是我该怎么做?请帮助。这是我有多远:
@{
Html.Telerik().Window()
.Name("ImportDialog")
.ClientEvents(events => events.OnOpen("DialogOpen"))
.Visible(false)
.Title("Import users")
.Draggable(false)
.Resizable(resizing => resizing.Enabled(false))
.Modal(true)
.Width(400)
.Height(400)
.Render();
}
我确实想在DialogOpen函数中做一些事情,或者用服务器端函数替换客户端函数....
答案 0 :(得分:1)
您应该使用Telerik窗口的客户端API,更具体地说是ajaxRequest方法。
因此,例如,当单击按钮时,您应该获取客户端对象并调用ajaxRequest方法,该方法将使Window从该MVC操作方法中检索其内容。 e.g。
function DialogOpen(){
var myWin= $('#ImportDialog').data('tWindow');
myWin.ajaxRequest("Controller/Action", { name: "John",location:"Boston"});
}
答案 1 :(得分:0)
我找到了一种答案,但我不确定它是否是最好的。
在javascript函数DialogOpen中我向网址发送ajax请求(也称为MVC中的控制器动作),我将结果放在对话框窗口的内容中,如下所示:
function DialogOpen ()
{
$.ajax({
type: "POST",
url: "Controller/Action",
data: "name=John&location=Boston",
success: function (htmlContent)
{
$('#ImportDialogContent').html(htmlContent);
},
error: function ()
{
$('#ImportDialogContent').html("<p>Could not import user data at this time</p>");
}
});
}
P.S。:我给telerik Window(ImportDialogContent)的内容区域提供了一个ID!