jQuery Ajax调用无法在单独的.js文件中运行

时间:2015-04-03 08:27:10

标签: javascript jquery asp.net ajax

我有一个asp.net应用程序,其主文件包含jquery.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代码。那么,如果它不是那么它是什么?我该如何解决?

1 个答案:

答案 0 :(得分:1)

  

$(&#34;#&lt;%= SearchBoxes.ClientID%&gt;&#34;)

ClientID无法在外部Javascript文件中使用。 您可以在Aspx页面中设置ClientIDMode = Static并直接访问Id 为$("#SearchBoxes")

更新所有此类案件。 希望这会有所帮助。