$(document).Ready() loads Flexigrid, but not when called again by other function outside $(document).Ready()

StackOverflow https://stackoverflow.com/questions/13254555

Frage

I have a function called "loadTimeTrackersGrid()", which loads a flexigrid. The setup looks like this :

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

The beginning of the function looks like this :

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',

As you can see it calls another page which contains a stored procedure which returns a set of rows and a jsonwriter then puts the returned columns into the flexigrid.

But the problem I am having is outside the (document).ready(), when I have a function that calls the "loadTimeTrackersGrid()", it never reloads the flexigrid or makes a call to the file that contains the stored procedure.

My function(that I am trying to get to work) looks like this :

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

And this is how I am calling "returnInvoicedItems" function:

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

Lösung 2

This works like a gem:

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

Andere Tipps

I am not sure, but I think I can see the problem. Your second function returnInvoicedItems() that calls loadTimeTrackersGrid(), it does have a jQuery code (in the line $('.menuBtn img').parent().children('ul').removeClass('menuShow');. Now, if you have a jQuery call, don't you have to do make that call inside $(document).ready()?

Try to move returnInvoicedItems() inside $(document).ready() and see what happens.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top