2012-05-23 49 views
1

我試圖使用$.ajax()加載一個頁面。 我有看法與行動:指數創建刪除。 頁面創建,有一個電網的MVC。當我頁面上指數負載頁面Ajax調用創建替換當前頁面的內容 出現問題。 該頁面已滿載,但網格不可用$('#gridname').data('tGrid')返回undefined動態加載視圖,telerik mvc

JavaScript代碼的一個示例。

$.ajax({ 
    url: '/Person/Create', 
    contentType: 'application/html; charset=utf-8', 
    type: 'GET', 
    dataType: 'html', 
    cache: false, 
    success: function (data) { 
     $('#main').html($(data).fadeIn(fade)); 
    } 
}); 

感謝的

+0

如果你看devtools,你可以在HTML中看到'gridName'的存在嗎? – mattytommo

+0

是的,名稱是存在的, 加載'Create'頁面時,'datagrid'完美工作,但通過ajax調用加載時,不是 –

回答

1

我已經遇到這個問題很多次。問題是,當呈現局部視圖的Telerik控件時,它會添加一個script標記,以便初始化該控件所需的JavaScript。如果您使用$.ajax,則jQuery將script標記出去。請嘗試以下操作:

$('#main').load('/Person/Create'); 

jQuery.load不串出script標籤。

編輯:

看起來有更給它不僅僅是load。 Telerik的有關於它在這裏的文章:

http://www.telerik.com/help/aspnet-mvc/using-with-partial-views-loaded-via-ajax.html

基本上,你需要確保Telerik的腳本在頁面(因爲他們不會被自動添加)引用,您必須使用AJAX來綁定數據。

+0

當網格呈現在頁面上時,Telerik將javascript添加到jQuery ).ready()函數創建$('#Grid')。data('tGrid')對象。 這是問題,我無法獲取數據('tGrid')。 tks –

+0

那麼,你是否嘗試使用'jQuery.load'? –

+0

是的,但不適用... –