Question

J'ai essayé d'obtenir ce à travailler pendant des jours après jours et il semble que une chose après l'autre. Dans un premier temps, je me suis finalement dépisté vers le bas pour passer des problèmes de dates ASP.NET dans la chaîne JSON au réseau électrique. Je suis maintenant en utilisant JSON.NET et les dates repeuplent la façon dont ils devraient être je suis coincé retour où je alwasy semble être. Voici mon code, retourné chaîne JSON, et le code jqGrid aussi: (je suis désolé qu'il est si longtemps, mais je ne voulais pas laisser quoi que ce soit dans le cas qui a été la partie qui me merdait)! Au fond, je suis toujours coincé dans la méthode de réussite de l'appel ajax où je tente de addJSONData .... En ce moment, je reçois une erreur de Firebug qui dit: id de propriété non valide  ({Total: 1, page: 1, 5: enregistrements, [{ "ROWID": 1, "... RNAME": "BCC", "SubmitterID": "BCC4010", "Su

D'AIDE SERAIT SO CONSIDÉRABLEMENT APPRÉCIÉES! I Vous souhaitez utiliser ce plug tellement, mais je vais absolument fou à essayer de le faire fonctionner!


Merci à l'avance, Briana: -)

WebMethod:
<WebMethod()> _
    <Script.Services.ScriptMethod(UseHttpGet:=False, ResponseFormat:=ResponseFormat.Json)> _
    Public Function GetTableData() As String
        Dim objController As New TradingPartnersController
        Dim gv_page As String = String.Empty
        Dim sidx As String = String.Empty
        Dim sord As String = String.Empty
        Dim start As String = String.Empty
        Dim limit As String = String.Empty
        Dim row As String = String.Empty
        Dim header As String = String.Empty
        Dim count As Integer = 0
        Dim total_pages As Integer = 0

        gv_page = HttpContext.Current.Request.Form("page")  '.Form("page")
        ' get the requested page 
        limit = HttpContext.Current.Request.Form("rows")
        ' get how many rows we want to have into the grid 
        sidx = HttpContext.Current.Request.Form("sidx")
        ' get index row - i.e. user click to sort 
        sord = HttpContext.Current.Request.Form("sord")
        ' get the direction 
        If String.IsNullOrEmpty(sidx) Then
            sidx = "PartnerID"

        End If

        If String.IsNullOrEmpty(sord) Then
            sord = "ASC"

        End If

        If String.IsNullOrEmpty(limit) Then
            limit = 10

        End If

        '' connect to the database 
        'GridView1.DataSource = objController.ListAll()
        'GridView1.DataBind()

        Dim objCollection As List(Of TradingPartnersInfo) = objController.ListAll()
        count = objCollection.Count

        If count > 0 Then
            total_pages = Math.Ceiling(count / Int32.Parse(limit))
        Else
            total_pages = 0
        End If

        If gv_page Is Nothing Then
            gv_page = 1
        End If
        If Not gv_page > total_pages Then
            gv_page = total_pages
        End If

        start = Math.Ceiling(Int32.Parse(limit) * (Int32.Parse(gv_page) - Int32.Parse(limit)))
        If start < 1 Then start = 1
        Dim objPageCollection As List(Of TradingPartnersInfo) = objController.ListTradingPartners(sidx, sord, Int32.Parse(start), Int32.Parse(limit))
        Dim json As New StringBuilder
        json.Append("{")
        json.Append("total:" & total_pages.ToString & ",")
        json.Append("page:" & gv_page.ToString & ",")
        json.Append("records:" & count.ToString & ",")
        json.Append(JsonConvert.SerializeObject(objPageCollection))
        json.Append("}")
        Return json.ToString

    End Function


Here is the jqGrid code:  


jQuery('table.scroll').jqGrid({  
    jsonReader: {  
        root: "rows", //arry containing actual data  
        page: "page", //current page  
        total: "total", //total pages for the query  
        records: "records", //total number of records  
        repeatitems: false,  
        id: "ID" //index of the column with the PK in it   
    },  
    datatype: function(postdata) {  
        jQuery.jmsajax({  
            type: "POST",  
            url: "EDI.asmx",  
            method: "GetTableData",  
            dataType: "msjson",  
            data: {},  
            complete: function(data) {  
                var mygrid = jQuery('table.scroll')[0];  
                var result = (eval("(" + data.responseText + ")"));  
                var myjsongrid = (jeval(result.d));  
                alert(myjsongrid.rows);  
                mygrid.addJSONData(jeval(myjsongrid.rows));  //This is ERROR LINE

                myjsongrid = null;  
                myjsongridParsed = null;  
                result = null;  
            },  
            success: function(data) {  
                alert('success: ' + data);  
            },  
            error: function(xhr) {  
                var res = xhr.responseText;  
                alert(res);  
            }  
        });  
    },  
    colNames: [
                    "ROWID",
                    "ID",
                    "PartnerID",
                        "Direction",
                        "InterchangeVersion",
                        "InterchangeSenderID",
                        "InterchangeReceiverID",
                        "ProductionMode",
                        "SubmitterName",
                        "SubmitterID",
                        "SubmitterPOC",
                        "CommQual",
                        "CommNumber",
                        "ReceiverName",
                        "ReceiverID",
                        "PartnerType",
                        "PartnerNotes",
                        "IncomingSP",
                        "OutgoingSP",
                        "ExchangeAck",
                        "isDeleted",
                        "DateTimeInserted",
                        "KeyID"
                    ],

    colModel: [
                { name: "ROWID",
                    width: 1,
                    hidden: true,
                    key: false,
                    sorttype: 'int',
                    editrules: { searchhidden: false,
                        hidedlg: true,
                        index: 'ROWID',
                        jsonmap: 'ROWID'
                    }
                },

                { name: "ID",
                    width: 1,
                    hidden: true,
                    key: true,
                    sorttype: 'int',
                    editrules: { searchhidden: true,
                        hidedlg: false,
                        index: 'ID',
                        jsonmap: 'ID'
                    }
                },

                { name: "PartnerID",
                    width: 50,
                    resizable: true,
                    sortable: true,
                    sorttype: 'text',
                    editable: true,
                    edittype: 'text',
                    editrules: { required: true,
                        index: 'PartnerID',
                        jsonmap: 'PartnerID',
                        label: 'PartnerID',
                        resizable: true,
                        search: true
                    }
                },
                    { name: "Direction",
                        width: 50,
                        resizable: true,
                        sortable: true,
                        sorttype: 'text',
                        editable: true,
                        edittype: 'select',
                        editoptions: { value: "I:O" },
                        editrules: { required: true,
                            index: 'Direction',
                            jsonmap: 'Direction',
                            label: 'Direction',
                            resizable: true,
                            search: true
                        }
                    },

                    { name: "InterchangeVersion",
                        width: 50,
                        resizable: true,
                        sortable: true,
                        sorttype: 'text',
                        editable: true,
                        edittype: 'select',
                        editoptions: { value: "004010X098A1:004010X097A1:004010X096A1:004010X098A:004010X097A:004010X096A" },
                        editrules: { required: true,
                            index: 'InterchangeVersion',
                            jsonmap: 'InterchangeVersion',
                            label: 'InterchangeVersion',
                            resizable: true, search: true
                        }
                    },

                    { name: "InterchangeSenderID",
                        width: 50,
                        resizable: true,
                        sortable: true,
                        sorttype: 'text',
                        editable: true,
                        edittype: 'text',
                        editrules: { required: true,
                            index: 'InterchangeSenderID',
                            jsonmap: 'InterchangeSenderID',
                            label: 'InterchangeSenderID',
                            resizable: true,
                            search: true
                        }
                    },

                    { name: "InterchangeReceiverID",
                        width: 50,
                        resizable: true,
                        sortable: true,
                        sorttype: 'text',
                        editable: true,
                        edittype: 'text',
                        editrules: { required: true,
                            index: 'InterchangeReceiverID',
                            jsonmap: 'InterchangeReceiverID',
                            label: 'InterchangeReceiverID',
                            resizable: true,
                            search: true
                        }
                    },

                    { name: "ProductionMode",
                        width: 50,
                        resizable: true,
                        sortable: true,
                        sorttype: 'text',
                        editable: true,
                        edittype: 'select',
                        editoptions: { value: "T:P" },
                        editrules: { required: true,
                            index: 'ProductionMode',
                            jsonmap: 'ProductionMode',
                            label: 'ProductionMode',
                            resizable: true,
                            search: true
                        }
                    },

                    { name: "SubmitterName",
                        width: 50,
                        resizable: true,
                        sortable: true,
                        sorttype: 'text',
                        editable: true,
                        edittype: 'text',
                        editrules: { required: true,
                            index: 'SubmitterName',
                            jsonmap: 'SubmitterName',
                            label: 'SubmitterName',
                            resizable: true,
                            search: true
                        }
                    },

                    { name: "SubmitterID",
                        width: 50,
                        resizable: true,
                        sortable: true,
                        sorttype: 'text',
                        editable: true,
                        edittype: 'text',
                        editrules: { required: true,
                            index: 'SubmitterID',
                            jsonmap: 'SubmitterID',
                            label: 'SubmitterID',
                            resizable: true,
                            search: true
                        }
                    },

                    { name: "SubmitterPOC",
                        width: 50,
                        resizable: true,
                        sortable: true,
                        sorttype: 'text',
                        editable: true,
                        edittype: 'text',
                        editrules: { required: true,
                            index: 'SubmitterPOC',
                            jsonmap: 'SubmitterPOC',
                            label: 'SubmitterPOC',
                            resizable: true,
                            search: true
                        }
                    },

                    { name: "CommQual",
                        width: 50,
                        resizable: true,
                        sortable: true,
                        sorttype: 'text',
                        editable: true,
                        edittype: "select",
                        editoptions: { value: "ED:EM:FX:TE" },
                        editrules: { required: false,
                            index: 'CommQual',
                            jsonmap: 'CommQual',
                            label: 'CommQual',
                            resizable: true,
                            search: true
                        }
                    },

                    { name: "CommNumber",
                        width: 50,
                        resizable: true,
                        sortable: true,
                        sorttype: 'text',
                        editable: true,
                        edittype: 'text',
                        editrules: { required: false,
                            index: 'CommNumber',
                            jsonmap: 'CommNumber',
                            label: 'CommNumber',
                            resizable: true,
                            search: true
                        }
                    },

                    { name: "ReceiverName",
                        width: 50,
                        resizable: true,
                        sortable: true,
                        sorttype: 'text',
                        editable: true,
                        edittype: 'text',
                        editrules: { required: true,
                            index: 'ReceiverName',
                            jsonmap: 'ReceiverName',
                            label: 'ReceiverName',
                            resizable: true,
                            search: true
                        }
                    },

                    { name: "ReceiverID",
                        width: 50,
                        resizable: true,
                        sortable: true,
                        sorttype: 'text',
                        editable: true,
                        edittype: 'text',
                        editrules: { required: true,
                            index: 'ReceiverID',
                            jsonmap: 'ReceiverID',
                            label: 'ReceiverID',
                            resizable: true,
                            search: true
                        }
                    },

                    { name: "PartnerType",
                        width: 50,
                        resizable: true,
                        sortable: true,
                        sorttype: 'text',
                        editable: true,
                        edittype: "select",
                        editoptions: { value: "Clearinghouse:PPO:Both" },
                        editrules: { required: true,
                            index: 'PartnerType',
                            jsonmap: 'PartnerType',
                            label: 'PartnerType',
                            resizable: true,
                            search: true
                        }
                    },

                    { name: "PartnerNotes",
                        width: 50,
                        resizable: true,
                        sortable: true,
                        sorttype: 'text',
                        editable: true,
                        edittype: 'textarea',
                        editrules: { required: false,
                            index: 'PartnerNotes',
                            jsonmap: 'PartnerNotes',
                            label: 'PartnerNotes',
                            resizable: true,
                            search: true
                        }
                    },

                    { name: "IncomingDataPrepSP",
                        width: 50,
                        resizable: true,
                        sortable: true,
                        sorttype: 'text',
                        editable: true,
                        edittype: 'text',
                        editrules: { required: false,
                            index: 'IncomingDataPrepSP',
                            jsonmap: 'IncomingDataPrepSP',
                            label: 'IncomingDataPrepSP',
                            resizable: true,
                            search: true
                        }
                    },

                    { name: "OutgoingDataPrepSP",
                        width: 50,
                        resizable: true,
                        sortable: true,
                        sorttype: 'text',
                        editable: true,
                        edittype: 'text',
                        editrules: { required: false,
                            index: 'OugoingDataPrepSP',
                            jsonmap: 'OugoingDataPrepSP',
                            label: 'OutgoingDataPrepSP',
                            resizable: true,
                            search: true
                        }
                    },

                    { name: "ExchangeAck",
                        width: 50,
                        resizable: true,
                        sortable: true,
                        sorttype: 'text',
                        editable: true,
                        edittype: "select",
                        editoptions: { value: "True:False" },
                        editrules: { required: true,
                            index: 'ExchangeAck',
                            jsonmap: 'ExchangeAck',
                            label: 'ExchangeAck',
                            resizable: true,
                            search: true
                        }
                    },

                    { name: "isDeleted",
                        width: 5,
                        resizable: false,
                        sortable: true,
                        sorttype: 'text',
                        editable: true,
                        edittype: "select",
                        editoptions: { value: "Yes:No" },
                        editrules: { required: true,
                            index: 'isDeleted',
                            jsonmap: 'msg.d.isDeleted',
                            label: 'isDeleted',
                            resizable: true,
                            search: true
                        }
                    },

                      { name: "DateTimeInserted",
                          width: 20,
                          hidden: false,
                          datefmt: 'Y-m-d',
                          sorttype: 'date',
                          editable: false,
                          editrules: { index: 'DateTimeInserted',
                              jsonmap: 'DateTimeInserted',
                              label: 'DateTimeInserted',
                              resizable: true,
                              search: true
                          }
                      },

                    { name: "KeyID",
                        width: 5,
                        hidden: true,
                        key: false,
                        sorttype: 'int',
                        editrules: { index: 'KeyID',
                            jsonmap: 'KeyID',
                            hidedlg: true,
                            label: 'KeyID',
                            resizable: false,
                            search: false
                        }
                    }
                ],
    height: 400,
    shrinkToFit: true,
    pager: jQuery('#pager'),
    rowNum: 10,
    rowList: [10, 20, 30, 40, 50],
    sortname: 'ROWID',
    sortorder: "asc",
    viewrecords: true,
    imgpath: 'http://localhost/DNN5/js/jQuery/jqGrid-3.4.3/themes/sand/images',
    caption: 'X12 Trading Partners',
    viewrecords: true,
    gridComplete: function() {
        alert("i'm grid complete" + JSON.stringify(msg));
        //updates the new column order position
        $('table.scroll').tableDnDUpdate();
    }}).navGrid('table.scroll', { edit: true, add: true, del: true }).tableDnD();

Voici le Returned JSON Chaîne: (Je n'ai pas de problème pour voir ces données d'être renvoyé au client.)

succès:

{total:1,page:1,records:5,[{"ROWID":1,"ID":1,"PartnerID":"BCN","Direction":"I","InterchangeVersion":"004010X096A1","InterchangeSenderID":"BCC4010","InterchangeReceiverID":"company","ProductionMode":"T","SubmitterName":"BCC","SubmitterID":"BCC4010","SubmitterPOC":"BCC","CommQual":"","CommNumber":"","ReceiverName":"company","ReceiverID":"BCC4010","PartnerTypes":"","PartnerNotes":"","IncomingDataPrepSP":"","OutgoingDataPrepSP":"","ExchangeAck":false,"DateTimeInserted":new Date(1214412777787),"IsDeleted":false},{"ROWID":2,"ID":2,"PartnerID":"BCN","Direction":"I","InterchangeVersion":"004010X098A1","InterchangeSenderID":"BCC4010","InterchangeReceiverID":"company","ProductionMode":"T","SubmitterName":"BCC","SubmitterID":"BCC4010","SubmitterPOC":"BCC","CommQual":"","CommNumber":"","ReceiverName":"company","ReceiverID":"BCC4010","PartnerTypes":"","PartnerNotes":"","IncomingDataPrepSP":"","OutgoingDataPrepSP":"","ExchangeAck":false,"DateTimeInserted":new Date(1212088125000),"IsDeleted":false},{"ROWID":3,"ID":3,"PartnerID":"BCN","Direction":"O","InterchangeVersion":"004010X091A1","InterchangeSenderID":"HCA770385729","InterchangeReceiverID":"BCC47198       ","ProductionMode":"T","SubmitterName":"company Administrators","SubmitterID":"HCA770385729","SubmitterPOC":"briana","CommQual":"EM","CommNumber":"briana@company.com","ReceiverName":"BCN","ReceiverID":"BCC47198","PartnerTypes":"","PartnerNotes":"","IncomingDataPrepSP":"","OutgoingDataPrepSP":"","ExchangeAck":false,"DateTimeInserted":new Date(1212088125547),"IsDeleted":false},{"ROWID":4,"ID":4,"PartnerID":"EHG","Direction":"I","InterchangeVersion":"004010X097A1","InterchangeSenderID":"330989922","InterchangeReceiverID":"company","ProductionMode":"T","SubmitterName":"DENTALCONNECT","SubmitterID":"330989922","SubmitterPOC":"","CommQual":"","CommNumber":"","ReceiverName":"","ReceiverID":"","PartnerTypes":"Clearinghouse","PartnerNotes":"Dental clearinghouse.  Sends billing address in the pay-to segment (NM1*87) and the service address in the billing segment (NM1*85).","IncomingDataPrepSP":"[dispatch].spPreprocessEHG","OutgoingDataPrepSP":"","ExchangeAck":true,"DateTimeInserted":new Date(1235603192033),"IsDeleted":false},{"ROWID":5,"ID":5,"PartnerID":"EMDEON","Direction":"I","InterchangeVersion":"004010X097A1","InterchangeSenderID":"341884003","InterchangeReceiverID":"857297703","ProductionMode":"T","SubmitterName":"INTERACTIVE PAYER NETWORK","SubmitterID":"341884003","SubmitterPOC":"","CommQual":"","CommNumber":"","ReceiverName":"","ReceiverID":"","PartnerTypes":"Clearinghouse","PartnerNotes":"Dental clearinghouse.  Sends billing address in the pay-to segment (NM1*87) and the service address in the billing segment (NM1*85).","IncomingDataPrepSP":"","OutgoingDataPrepSP":"","ExchangeAck":true,"DateTimeInserted":new Date(1235603192000),"IsDeleted":false}]}
Était-ce utile?

La solution

En fait, tvanfosson fait un excellent point à l'exigence de l'identifiant 'lignes'. Je ne suis pas familier avec jMSAjax pour que mes commentaires peuvent être nulles et non avenues. Je suis heureux d'être au courant.


pourrait-il être aussi simple que le type de retour étant chaîne? Autrement dit, lorsque la réponse est évaluée, vous vous retrouvez avec la chaîne encapsulé et non l'objet JSON.

Je suis dans un endroit semblable moi-même. J'ai trouvé les options pour être non plus, créer un objet métier qui représente la réponse jqGrid attendue et le retour de l'objet non une chaîne (ASP.NET sérialise comme JSON pour vous!) Ou de modifier le jqGrid eval la réponse à deux reprises (en désordre).

Autres conseils

manque un identifiant pour cette liste:

return_value = {
    total:1,
    page:1,
    records:5,
    [{  .. some X12 messages  ..}]
}

J'ai passé beaucoup de temps à essayer de jqGrid de travailler avec ASP.NET à l'aide JSON. Maintenant que je l'ai travailler, je voudrais partager avec vous. Dans l'espoir de gagner du temps pour les autres.

J'ai trouvé la réponse . Cela ne veut pas dire qu'il n'y a pas d'autres façons de faire ce travail (je suis sûr qu'il ya). Mais celui-ci fonctionne vraiment.

Pour résumer les choses qui ont fait une différence pour moi:

  • Utilisation de "type de données: function () {" sur les paramètres du jqGrid, et ne pas utiliser "type de données: JSON". La fonction utilise « .ajax de $ ( » pour appeler le service. En regardant dans Fiddler, cela a changé les données à revenir au navigateur, pour être JSON pur (au lieu de JSON enveloppé dans XML).
  • L'utilisation d'un service Web qui renvoie un classe de données (dans le schéma jqGrid attend). J'ai d'abord essayé d'utiliser JSON.NET mais pour une raison quelconque le message a montré (dans Fiddler à nouveau) pour être échappé avec \ pour chaque citation dans le chaîne. Je suis sûr que vous pouvez obtenir JSON.NET à travailler. Mais il fonctionne ainsi sans elle.

Il ne semble pas que vous ajoutez les lignes identificateur de propriété. Essayez de changer:

json.Append(JsonConvert.SerializeObject(objPageCollection))

à

json.Append("rows: " + JsonConvert.SerializeObject(objPageCollection))

Si cela ne fonctionne pas, je vous suggère de simplifier le problème - réduire les données à une ligne, par exemple - et voyez si vous pouvez le faire fonctionner avec des données plus simples, puis ajoutez progressivement plus de choses de nouveau dans ce .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top