2012-12-11 84 views
0

我在ASP.NET MVC 3中使用Telerik。我有一个空的telerik窗口。我的目标是只在用户点击按钮时向服务器请求内容,但我不知道如何做到这一点。我想要达到这个目标,我需要存储一个对有问题的telerik窗口的引用。但我如何做到这一点? plz帮助。这是我在多大程度上得到:延迟加载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功能,或alternatevly更换与服务器端功能可按该客户端功能....

回答

1

您应该使用Telerik窗口的客户端API,更具体地说,使用ajaxRequest方法。

因此,例如,当点击按钮时,您应该获取客户端对象并调用ajaxRequest方法,该方法将使Window从该MVC操作方法中检索其内容。 例如

function DialogOpen(){ 
    var myWin= $('#ImportDialog').data('tWindow'); 
    myWin.ajaxRequest("Controller/Action", { name: "John",location:"Boston"}); 
} 
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>"); 
    } 
}); 
} 

PS:我给了telerik Window(ImportDialogContent)的内容区域ID!