2015-04-03 55 views
1

我有一個包含jquery.js文件的主文件的asp.net應用程序。jQuery Ajax調用不能在單獨的.js文件中工作

然後我有另一個頁面使用這個母版頁,隨後有它自己的jQuery代碼。

現在我試着將這段代碼移動到一個外部文件中,然後簡單地將該文件包含在我的.aspx文件中,該文件應該可以工作,並且它部分地執行。它觸發按鈕點擊等,但是一旦它達到我的ajax調用.js文件失敗。

Ajax的功能如下:

function setGridData() { 
    startNumber = (pageNumber * displayCount) + 1; 
    endNumber = (pageNumber + 1) * displayCount; 

    return $.ajax({ 
     url: '../WebServices/GridViewService.asmx/CreateViewHtmlFromObjectType', 
     data: '{ "queryType": "' + $("#<%= ObjectType.ClientID %>").val() + '", "pageNr": ' + pageNumber + ', "displayCount": ' + displayCount + ', "searchKeys": "' + searchKeys + '", "searchValues": "' + searchValues + '", "orderBy": "' + OrderBy + '", "orderColumn": "' + OrderColumn + '" }', 
     type: 'POST', 
     contentType: 'application/json', 
     dataType: "json", 
     cache: false 
    }).done(function (data) { 
     objectCount = data.d[1]; 
     $("#<%= SearchBoxes.ClientID %>").val(data.d[2]); 
     searchKeys = data.d[2]; 
     refreshGrid(data.d[0]); 
     setPrevSrchStates(); 
    }); 
} 

所以我們可以說我這樣做:

$(document).ready(function() { 
    //load initial data 
    setGridData(); 
} 

此代碼工作完全正常,當我將它放回實際的文件,所以我不知道發生了什麼事。

我一直在讀一點,因爲我讀了大多數類似的情況並不是因爲實際的js代碼。所以,如果不是那麼它是什麼?我該如何解決它?

+0

你會得到什麼異常?你能在這裏發佈截圖或錯誤內容嗎? – 2015-04-03 08:29:20

+0

嘗試在'docuument.ready'中移動函數進行測試,看看是否可行 – 2015-04-03 08:29:31

+0

試試這個http://stackoverflow.com/questions/8288046/javascript-function-does-not-work-within-jquery-document-準備塊或http://stackoverflow.com/questions/2223305/how-can-i-make-a-function-defined-in-jquery-ready-available-globally – 2015-04-03 08:32:08

回答

1

$( 「#<%= SearchBoxes.ClientID%>」)

客戶端ID不會在外部JavaScript文件工作。 您可以在Aspx頁面中設置ClientIDMode = Static並直接訪問Id 作爲$("#SearchBoxes")

更新所有這些情況。 希望這有助於。

相關問題