$(document).Ready()加载Flexigrid,但是在$(document).Ready()之外的其他函数再次调用时不会

时间:2012-11-06 15:48:41

标签: javascript jquery asp.net flexigrid

我有一个名为“loadTimeTrackersGrid()”的函数,它可以加载一个flexigrid。 设置如下:

 $(document).ready(function () {
        var editTrackerID = 0;
        loadTimeTrackersGrid();
)};

该函数的开头如下所示:

function loadTimeTrackersGrid(caseStatus) {
        var url = 'Utilities/DataViewHandlers/ViewTimeTrackers.ashx?CaseFileID=' + $('#hidCaseFile').val();

        if ($('#hidTaskID').val() !== "")
            url += '&TaskID=' + $('#hidTaskID').val();

        if (caseStatus == "NI") {
            url += '&NonInvoiced=1';
        }

        $('#viewTimeTrackersGrid').flexigrid({
            url: url,
            dataType: 'json',
            method: 'get',

正如您所看到的,它调用另一个页面,其中包含一个返回一组行的存储过程,然后一个jsonwriter将返回的列放入flexigrid。

但我遇到的问题是在(document).ready()之外,当我有一个调用“loadTimeTrackersGrid()”的函数时,它从不重新加载flexigrid或调用包含存储的文件过程

我的功能(我试图开始工作)看起来像这样:

        function returnInvoicedItems() {
            loadTimeTrackersGrid();
        $('.menuBtn img').parent().children('ul').removeClass('menuShow');
    }

这就是我调用“returnInvoicedItems”函数的方式:

<li><a href="#" onclick="returnInvoicedItems()">Non Invoiced Tracker</a></li>

2 个答案:

答案 0 :(得分:2)

我不确定,但我想我能看到问题所在。你的第二个函数 returnInvoicedItems()调用 loadTimeTrackersGrid(),它确实有一个jQuery代码(在行$('.menuBtn img').parent().children('ul').removeClass('menuShow');中。现在,如果你有一个jQuery调用,你不必在 $(document).ready()中进行调用吗?

尝试在 $(document).ready()中移动 returnInvoicedItems(),看看会发生什么。

答案 1 :(得分:0)

这就像一个宝石:

 $('#viewTimeTrackersGrid').flexOptions({ url: 'Utilities/DataViewHandlers/ViewTimeTrackers.ashx?' + invoicedUrl + '&NonInvoiced=1' }).flexReload();