2015-04-03 57 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")

更新所有这些情况。 希望这有助于。

相关问题