jQueryAjax调用在单独的.js文件中不起作用

jQuery Ajax call not working in seperate .js file

本文关键字:文件 不起作用 js 调用 单独 jQueryAjax      更新时间:2023-09-26

我有一个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代码。如果不是,那是什么?我该如何修复它?

$("#<%=SearchBoxes.ClientID%>")

ClientID在外部Javascript文件中不起作用。您可以在Aspx页面中设置ClientIDMode = Static并直接访问Id作为CCD_ 2。

更新所有此类案例。希望这能有所帮助。