4


2

私は何日も何日もこれを機能させようとしていました、そしてそれは次々にもののように思えます。 最初に、私はJSON文字列のASP.NETの日付をグリッドに戻す問題を突き止めました。 私は今JSON.NETを使用しています、そして日付はそれらがあるべき姿に戻ってきています。 ここに私のコード、返されたjson文字列、そしてjqGridコードもあります。(すみませんが、それは私を台無しにしている部分だったので私は何も除外したくありませんでした)! 基本的に、私は絶えず私が私がaddSONDataを試みているajax呼び出しの成功方法で立ち往生しています。 今のところ、Firebugから次のようなエラーが出ています。無効なプロパティID(\ {total:1、page:1、records:5、[\ {"ROWID":1、 "…​ rName": "BCC "、" SubmitterID ":" BCC4010 "、" Su

*どのようなヘルプでも大いに期待できます! 私は*このプラグをたくさん使いたいのですが、私はそれを機能させることを試みることを絶対にやろうとしています!

'' '' '

事前にありがとう、Briana :-)

WebMethod:_ _パブリック関数GetTableData()文字列として新規objController新規TradingPartnersController文字列としてgv_page文字列として= String.Empty Dimとして文字列= String.Empty文字列としてString = String.Empty Dimとして開始String = String.Empty Dim limit As String = String.Empty Dim row As String = String.Empty Dim header As String = String.Empty DimカウントとしてInteger = 0 Dim total_pages As Integer = 0

gv_page = HttpContext.Current.Request.Form( "page") '.Form( "page")'要求されたページ制限を取得する= HttpContext.Current.Request.Form( "rows") '行数を取得するグリッドにsidx = HttpContext.Current.Request.Form( "sidx") 'インデックス行を取得 - すなわち ユーザークリックでソートsord = HttpContext.Current.Request.Form( "sord") '方向を取得String.IsNullOrEmpty(sidx)の場合sidx = "PartnerID"

終了する場合

String.IsNullOrEmpty(sord)の場合sord = "ASC"

終了する場合

String.IsNullOrEmpty(limit)の場合それからlimit = 10

終了する場合

''データベースに接続します。 'GridView1.DataSource = objController.ListAll()' GridView1.DataBind()

リストとしてのobjCollectionを暗くする(Of TradingPartnersInfo)= objController.ListAll()count = objCollection.Count

count> 0の場合、total_pages = Math.Ceiling(count / Int32.Parse(limit))その他total_pages = 0の場合

gv_pageが何もなければgv_page = 1でなければ終了gv_page> total_pagesそしてgv_page = total_pagesが終了なら

start = Math.Ceiling(Int32.Parse(limit)*(Int32.Parse(gv_page) -  Int32.Parse(limit)))start <1の場合start = 1 Dim objPageCollectionをList(Of TradingPartnersInfo)として指定= objController.ListTradingPartners( sidx、sord、Int32.Parse(start)、Int32.Parse(limit))Dim jsonとして新規StringBuilder json.Append( "{")json.Append( "total:"

終了機能

これがjqGridのコードです。

jQuery( 'table.scroll')。jqGrid({jsonReader:{root: "rows"、//実際のデータページを含む配列: "page"、//現在のページの合計: "total"、//クエリの合計ページ数) records: "records"、//総レコード数repeatitems:false、id: "ID" // PKが入っている列のインデックス}、datatype:function(postdata){jQuery.jmsajax({type: "POST) "、url:" EDI.asmx "、メソッド:" GetTableData "、データ型:" msjson "、データ:{}、完了: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)); //これはエラーラインです

myjsongrid = null。 myjsongridParsed = null。 result = null。 }、成功:関数(データ){警告( '成功:'データ); function(xhr){var res = xhr.responseText;}アラート(res)。 ;}}); colNames:["ROWID"、 "ID"、 "PartnerID"、 "Direction"、 "InterchangeVersion"、 "InterchangeSenderID"、 "InterchangeReceiverID"、 "ProductionMode"、 "SubmitterName"、 "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' 、}

{名前: "ID"、幅:1、非表示:true、キー:true、ソートタイプ: 'int'、編集ルール:{searchhidden:true、hidedlg:false、インデックス: 'ID'、jsonmap: 'ID'}}、

{名前: "PartnerID"、幅:50、サイズ変更可能:true、並べ替え可能:true、並べ替えタイプ: 'text'、編集可能:true、編集タイプ: 'text'、editrules:{必須:true、インデックス: 'PartnerID'、jsonmap: 'PartnerID'、ラベル: 'PartnerID'、サイズ変更可能:true、検索:true}}、{名前: "Direction"、幅:50、サイズ変更可能:true、並べ替え可能:true、並べ替え可能:true、編集タイプ:true : 'select'、editoptions:{値: "I:O"}、editrules:{必須:true、インデックス: '方向'、 jsonmap: 'Direction'、ラベル: 'Direction'、サイズ変更可能:true、検索:true}}、

{名前: "InterchangeVersion"、幅:50、サイズ変更可能:true、並べ替え可能:true、並べ替えタイプ: 'text'、編集可能:true、編集タイプ: 'select'、編集オプション:{値: "004010X098A1:004010X097A1:004010X096A1:004010X098A1:004010X098A:004010X097A :004010X096A "}、editrules:{必須:true、インデックス: 'InterchangeVersion'、jsonmap: 'InterchangeVersion'、ラベル: 'InterchangeVersion'、サイズ変更可能:true、検索:true}}、

{名前: "InterchangeSenderID"、幅:50、サイズ変更可能:true、ソート可能:true、ソートタイプ: 'text'、編集可能:true、編集タイプ: 'text'、編集ルール:{必須:true、インデックス: 'InterchangeSenderID'、jsonmap: 'InterchangeSenderID'、ラベル: 'InterchangeSenderID'、サイズ変更可能:true、検索:true}}、

{名前: "InterchangeReceiverID"、幅:50、サイズ変更可能:true、並べ替え可能:true、並べ替えタイプ: 'text'、編集可能:true、編集タイプ: 'text'、編集ルール:{必須:true、インデックス: 'InterchangeReceiverID'、jsonmap: 'InterchangeReceiverID'、ラベル: 'InterchangeReceiverID'、サイズ変更可能:true、検索:true}}、

{名前: "ProductionMode"、幅:50、サイズ変更可能:true、並べ替え可能:true、並べ替えタイプ: 'text'、編集可能:true、編集タイプ: 'select'、編集オプション:{value: "T:P"}、editrules:{必須:true、インデックス: 'ProductionMode'、jsonmap: 'ProductionMode'、ラベル: 'ProductionMode'、サイズ変更可能:true、検索:true}}、

{名前: "SubmitterName"、幅:50、サイズ変更可能:true、ソート可能:true、ソートタイプ: 'text'、編集可能:true、編集タイプ: 'text'、editrules:{必須:true、インデックス: 'SubmitterName'、jsonmap: 'SubmitterName'、ラベル: 'SubmitterName'、サイズ変更可能:true、検索:true}}、

{名前: "SubmitterID"、幅:50、サイズ変更可能:true、ソート可能:true、ソートタイプ: 'text'、編集可能:true、編集タイプ: 'text'、editrules:{必須:true、インデックス: 'SubmitterID'、jsonmap: 'SubmitterID'、ラベル: 'SubmitterID'、サイズ変更可能:true、検索:true}}、

{名前: "SubmitterPOC"、幅:50、サイズ変更可能:true、並べ替え可能:true、並べ替えタイプ: 'text'、編集可能:true、編集タイプ: 'text'、editrules:{必須:true、インデックス: 'SubmitterPOC'、jsonmap: 'SubmitterPOC'、ラベル: 'SubmitterPOC'、サイズ変更可能:true、検索:true}}、

{名前: "CommQual"、幅:50、サイズ変更可能:true、並べ替え可能:true、並べ替えタイプ: 'text'、編集可能:true、編集タイプ: "select"、編集オプション:{値: "ED:EM:FX:TE"} 、editrules:{必須:false、インデックス: 'CommQual'、jsonmap: 'CommQual'、ラベル: 'CommQual'、サイズ変更可能:true、検索:true}}、

{名前: "CommNumber"、幅:50、サイズ変更可能:true、並べ替え可能:true、並べ替えタイプ: 'text'、編集可能:true、編集タイプ: 'text'、editrules:{必須:false、インデックス: 'CommNumber'、jsonmap: 'CommNumber'、ラベル: 'CommNumber'、サイズ変更可能:true、検索:true}}、

{名前: "ReceiverName"、幅:50、サイズ変更可能:true、並べ替え可能:true、並べ替えタイプ: 'text'、編集可能:true、編集タイプ: 'text'、編集ルール:{必須:true、インデックス: 'ReceiverName'、jsonmap: 'ReceiverName'、ラベル: 'ReceiverName'、サイズ変更可能:true、検索:true}}、

{名前: "ReceiverID"、幅:50、サイズ変更可能:true、並べ替え可能:true、並べ替えタイプ: 'text'、編集可能:true、編集タイプ: 'text'、編集ルール:{必須:true、インデックス: 'ReceiverID'、jsonmap: 'ReceiverID'、ラベル: 'ReceiverID'、サイズ変更可能:true、検索:true}}、

{名前: "PartnerType"、幅:50、サイズ変更可能:true、並べ替え可能:true、並べ替えタイプ: 'text'、編集可能:true、編集タイプ: "選択"、editoptions:{値: "クリアリングハウス:PPO:両方"}、editrules :{必須:true、インデックス: 'PartnerType'、jsonmap: 'PartnerType'、ラベル: 'PartnerType'、サイズ変更可能:true、検索:true}}、

{名前: "PartnerNotes"、幅:50、サイズ変更可能:true、並べ替え可能:true、並べ替えタイプ: 'text'、編集可能:true、編集タイプ: 'textarea'、編集ルール:{必須:false、インデックス: 'PartnerNotes'、jsonmap: 'PartnerNotes'、ラベル: 'PartnerNotes'、サイズ変更可能:true、検索:true}}、

{名前: "IncomingDataPrepSP"、幅:50、サイズ変更可能:true、並べ替え可能:true、並べ替えタイプ: 'テキスト'、編集可能:true、編集タイプ: 'テキスト'、editrules:{必須:false、インデックス: 'IncomingDataPrepSP'、jsonmap: 'IncomingDataPrepSP'、ラベル: 'IncomingDataPrepSP'、サイズ変更可能:true、検索:true}}、

{名前: "OutgoingDataPrepSP"、幅:50、サイズ変更可能:true、並べ替え可能:true、並べ替えタイプ: 'text'、編集可能:true、編集タイプ: 'text'、編集ルール:{必須:false、インデックス: 'OugoingDataPrepSP'、jsonmap: 'OugoingDataPrepSP'、ラベル: 'OutgoingDataPrepSP'、サイズ変更可能:true、検索:true}}、

{name: "ExchangeAck"、width:50、サイズ変更可能:true、sortable:true、sorttype: 'text'、editable:true、edittype: "select"、editoptions:{value: "True:False"}、editrules:{必須:true、インデックス: 'ExchangeAck'、jsonmap: 'ExchangeAck'、ラベル: 'ExchangeAck'、サイズ変更可能:true、検索:true}}、

{name: "isDeleted"、width:5、サイズ変更可能:false、sortable:true、sorttype: 'text'、editable:true、edittype: "select"、editoptions:{value: "はい:いいえ"}、editrules:{必須:true、インデックス: 'isDeleted'、jsonmap: 'msg.d.isDeleted'、ラベル: 'isDeleted'、サイズ変更可能:true、検索:true}}、

{name: "DateTimeInserted"、幅:20、非表示:false、datefmt: 'Ym-d'、ソートタイプ: 'date'、編集可能:false、編集ルール:{index: 'DateTimeInserted'、jsonmap: 'DateTimeInserted'、ラベル: 'DateTimeInserted'、サイズ変更可能:true、検索:true}}、

{名前: "KeyID"、幅:5、非表示:true、キー:false、ソートタイプ: 'int'、編集ルール:{インデックス: 'KeyID'、jsonmap: 'KeyID'、hidedlg:true、ラベル: 'KeyID'、サイズ変更:false、検索:false}}]、高さ:400、shrinkToFit:true、ページャー:jQuery( '#pager')、行番号:10、行リスト:[10、20、30、40、50]、ソート名: ' ROWID、sortorder: "asc"、viewrecords:true、im​​gpath: 'http://localhost/DNN5/js/jQuery/jqGrid-3.4.3/themes/sand/images'、キャプション: 'X12 Trading Partners'、viewrecords :true、gridComplete:function(){alert( "グリッド完了です" JSON.stringify(msg)); //新しい列の順序位置$( 'table.scroll')を更新しますtableDnDUpdate(); navGrid( 'table.scroll'、{edit:true、add:true、del:true})。tableDnD();

これが返されるJSON文字列です。(このデータがクライアントに返されるのを見ても問題ありません。)

成功:

{合計:1、ページ:1、レコード:5、[{"ROWID":1、 "ID":1、 "PartnerID": "BCN"、 "方向": "I"、 "InterchangeVersion": "004010X096A1" 、 "InterchangeSenderID": "BCC4010"、 "InterchangeReceiverID": "会社"、 "プロダクションモード": "T"、 "SubmitterName": "BCC"、 "SubmitterID": "BCC4010"、 "SubmitterPOC": "BCC"、 " CommQual ":"、 "CommNumber": ""、 "ReceiverName": "company"、 "ReceiverID": "BCC4010"、 "PartnerTypes": ""、 "PartnerNotes": ""、 "IncomingDataPrepSP": ""、 "OutgoingDataPrepSP": ""、 "ExchangeAck":偽、 "DateTimeInserted":新しい日付(1214412777787)、 "IsDeleted":偽}、{"ROWID":2、 "ID":2、 "PartnerID": "BCN" 、 "方向": "I"、 "InterchangeVersion": "004010X098A1"、 "InterchangeSenderID": "BCC4010"、 "InterchangeReceiverID": "会社"、 "プロダクションモード": "T"、 "SubmitterName": "BCC"、 " SubmitterID ":" BCC4010 "、" SubmitterPOC ":" BCC "、" CommQual ":" "、" CommNumber ":" "、" ReceiverName ":"会社 "、" ReceiverID ":" BCC4010 "、" PartnerTypes ":" "、" PartnerNotes ":" "、" IncomingDataPrepSP ":" "、" OutgoingDataPrepSP ":" "、" ExchangeAck ":false、" DateTimeInserted ":新しい日付(1212088125000)、" IsDeleted ":false}、{ "ROWID":3、 "ID":3、 "PartnerID": "BCN"、 "方向": "O"、 "InterchangeVersion": "004010X091A1"、 "InterchangeSenderID": "HCA770385729"、 "InterchangeReceiverID": "BCC47198" "、" ProductionMode ":" T "、" SubmitterName ":"会社管理者 "、" SubmitterID ":" HCA770385729 "、" SubmitterPOC ":" briana "、" CommQual ":" EM "、" CommNumber ":" briana @ " company.com "、" ReceiverName ":" BCN "、" ReceiverID ":" BCC47198 "、" PartnerTypes ":" "、" PartnerNotes ":" "、" IncomingDataPrepSP ":" "、" OutgoingDataPrepSP ":" "、" ExchangeAck ":false、" DateTimeInserted ":新しい日付(1212088125547)、" IsDeleted ":false}、{" ROWID ":4、" ID ":4、" PartnerID ":" EHG "、" Direction ":" I " 、 "InterchangeVersion": "004010X097A1"、 "InterchangeSenderID": "330989922"、 "InterchangeReceiverID": "会社"、 "プロダクションモード": "T"、 "SubmitterName": "DENTALCONNECT"、 "330989922"、 " SubmitterPOC ":"、 "CommQual": ""、 "CommNumber": ""、 "ReceiverName": ""、 "ReceiverID": ""、 "PartnerTypes": "クリアリングハウス"、 "PartnerNotes": "歯科用クリアリングハウス。 支払先セグメントの請求先住所(NM1 * 87)および請求先セグメントのサービスアドレス(NM1 * 85)を送信します。 "、" IncomingDataPrepSP ":" [dispatch] .spPreprocessEHG "、" OutgoingDataPrepSP ":" "、" ExchangeAck ":true、" DateTimeInserted ":新しい日付(1235603192033)、" IsDeleted ":false、{" ROWID ":5、" ID ":5、" PartnerID ":" EMDEON "、" Direction ":" I " 、 "InterchangeVersion": "004010X097A1"、 "InterchangeSenderID": "341884003"、 "InterchangeReceiverID": "857297703"、 "ProductionMode": "T"、 "SubmitterName": "インタラクティブアカウントネットワーク"、 "341884003" 、 "SubmitterPOC": ""、 "CommQual": ""、 "CommNumber": ""、 "ReceiverName": ""、 "ReceiverID": ""、 "PartnerTypes": "クリアリングハウス"、 "PartnerNotes": "歯科クリアリングハウス 支払先セグメントの請求先住所(NM1 * 87)および請求先セグメントのサービスアドレス(NM1 * 85)を送信します。 "、" IncomingDataPrepSP ":" "、" OutgoingDataPrepSP ":" "、" ExchangeAck ":true、 "DateTimeInserted":新しい日付(1235603192000)、 "IsDeleted":false}]}

4 Answer


2


そのリストの識別子がありません。

return_value = {合計:1、ページ:1、レコード:5、[{.. いくつかのX12メッセージ..}]}


2


私はJSONを使用してjqGridをASP.NETと連携させるために多くの時間を費やしました。 これでうまくいったので、それをあなたと共有したいと思います。 他の人のために時間を節約したいと思っています。

私は答え hereを見つけました。 これを機能させる他の方法がないと言うことではありません(私はそこにいると確信しています)。 しかし、これは間違いなくうまくいきます。

私に影響を与えたものを要約すると

  • jqGridの設定で "datatype:function()\ {"を使用し、 "datatype:json"を使用しないでください。 この関数は "$ .ajax("を使用してサービスを呼び出します。 Fiddlerを見ると、これはブラウザに返されるデータを純粋なJSON(XMLにラップされたJSONではなく)に変更しました。

  • データクラスを返すWebサービスを使用する(jqGridが期待するスキーマ内)。 私は最初にJSON.NETを使用しようとしましたが、何らかの理由でメッセージが(再びFiddlerで)文字列内のすべての引用符に対してエスケープされることを示しました。 JSON.NETを機能させることができると確信しています。 しかし、それがなくても同様に機能します。


1


rowsプロパティ識別子を追加しているようには見えません。 変更してみてください。

json.Append(JsonConvert.SerializeObject(objPageCollection))

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

これでうまくいかない場合は、問題を単純化することをお勧めします。たとえば、データを1行に減らして、より単純なデータでもうまく動作するかどうかを確認してから、徐々にデータを追加してください。


1


実際には、_tvanfosson_は 'rows’識別子の要件に関して優れた点を示しています。 私は_jMSAjax_に慣れていないので、私のコメントは無効で無効な場合があります。 私はそれを知っていてうれしいです。

'' '' '

戻り値の型が文字列であるのと同じくらい簡単なものでしょうか。 つまり、レスポンスが評価されると、JSONオブジェクトではなく、カプセル化された文字列になります。

私は私と同じ場所にいました。 期待されるjqGrid応答を表すビジネスオブジェクトを作成して文字列ではないオブジェクトを返す(ASP.NETはそれをJSONとしてシリアル化する!)か、応答を2回_eval_に変更するか(乱雑)のいずれかを選択できます。 。