2012-12-11 121 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!