Search code examples
c#jqueryarrayspagemethods

How to pass mapped array to PageMethods?


I've been trying to pass a data array to c# web method with using jquery. I have a table which has selectable rows. And my function must pass the id's of selected data. But i can't pass the object array with PageMethods.
Here is my jquery function;

function DeleteQuestions()
    {
        var table = $('#questTable').DataTable();
        var data = (table.rows('.selected').data()).map(function (d) { return d.q_id; });
        PageMethods.Delete(data);
    }

When i debug it with firebug, veriable data looks like : Object["543","544","546"] as i wanted. And here is my Web Method:

[WebMethod]
    public static void Delete(List<string> questId)
    {
        DB_UserControl carrier = new DB_UserControl(); //break pointed here
    }//and looks it doesn't come here

It doesn't work, and the error is : Cannot serialize object with cyclic reference within child properties. I've searced for error but i couldn't figured it out. So need some help. Thanks in advance.

Note:Error throws at script function's last line: PageMethods.Delete(data); And i think it might be about mapped data causes some kind of loop behavior.


Solution

  • Problem solved with changing syntax. I use

    var data = $.map(table.rows('.selected').data(), function (d) {
                return d.q_id;
            });
    

    instead of given line. I don't know what caused the error but this code works fine and i get data in c#. Thank you all