5

OK、私はこれを数日間調べてきましたが、何が間違っているのか特にわかりません。C#/ ASP.NETおよびオープンソースツールでjqGridを使用した実例がある場合は、それらの場所を教えてください。これをデバッグするために使用できる適切なドキュメントやツールを見つけるためのヒントもありがたいです(私はjs / jQueryにかなり慣れていません)。基本的には、インプレース編集機能が必要なだけなので、そのための別の明白な解決策を見落としている場合は、知っておくと役立つかもしれません...可能な限りAJAX.NETの使用を避けたいと思います。

ここで本当に明白な何かを見落としているような気がします。

次の例では、jqGridを表示しますが、データが表示されません。

関連するJavaScriptは次のとおりです。

jQuery(document).ready(function(){ 
    jQuery("#role_assignment_table").jqGrid({ 
        url:'http://localhost:4034/WebSite2/PageItemHandler.asmx/GetPageItemRolesJson?id=3',
        mtype: 'GET',
        contentType: "application/json; charset=utf-8",
        datatype: "jsonstring",
        colModel:[
            {name:'Id', label:'ID', jsonmap:'Id'},
            {name:'Title', jsonmap:'Title'},
            {name:'AssignedTo', label:'Assigned To', jsonmap:'AssignedTo'},
            {name:'Assigned', jsonmap:'Assigned'},
            {name:'Due', jsonmap:'Due'},
            {name:'Completed', jsonmap:'Completed'}
        ],
        jsonReader: {
            page: "Page",
            total: "Total",
            records: "Records",
            root: "Rows",
            repeatitems: false,
            id: "Id"
        },
        rowNum:10,
        rowList:[10,20,30],
        imgpath: 'js/themes/basic/images',
        viewrecords: false,
        caption: "Role Assignments" 
    });  
});

HTML:

<table id="role_assignment_table" class="scroll" cellpadding="0" cellspacing="0" />

生成されたJSON: jqGridに到達するかどうか、またはjqGridがJSONまたはWebMethodを気に入らないかどうかはわかりませんが、適切なURLにアクセスしてJSON結果文字列を取得すると自分で呼び出すことができます。

{"Page":"1","Total":1.0,"Records":"4",
"Rows":[
{"Id":1,"Item":null,"Title":"Story Manager","AssignedTo":null,"Assigned":"\/Date(1245186733940-0500)\/","Due":"\/Date(1248383533940-0500)\/","Completed":"\/Date(1247087533940-0500)\/"},
{"Id":2,"Item":null,"Title":"Analysis","AssignedTo":null,"Assigned":"\/Date(1245186733940-0500)\/","Due":"\/Date(1248383533940-0500)\/","Completed":"\/Date(1247087533940-0500)\/"},
{"Id":3,"Item":null,"Title":"Narrative","AssignedTo":null,"Assigned":"\/Date(1245186733940-0500)\/","Due":"\/Date(1248383533940-0500)\/","Completed":"\/Date(1247087533940-0500)\/"},
{"Id":4,"Item":null,"Title":"Graphic","AssignedTo":null,"Assigned":"\/Date(1245186733940-0500)\/","Due":"\/Date(1248383533940-0500)\/","Completed":"\/Date(1247087533940-0500)\/"}
]
}

乾杯、ウィリアムライリー-土地

4

5 に答える 5

3

他のことをする前に、これをダウンロードしてインストールします。

http://www.fiddler2.com/fiddler2/

JSONデータを取得するためにjqGridリクエストによって何がリクエストされ、何が返されたかを正確に確認できます。

私は作業中のjqGridのコードをいくつか持っていますが、ここに何か違いがあります:

datatype: "json"

あなたの代わりに:

datatype: "jsonstring"

colNames列名を含む文字列の配列であるというフィールドもあります。

最後にpager、ページング コントロールを格納する要素を識別するフィールドがあり、これは DIV です。

于 2009-06-25T20:11:11.143 に答える
2

私はまったく同じ問題を抱えていました!私が思いついた解決策は、カスタム JavaScript フォーマッターを作成することです。

$(this).jqGrid({  
   ...
   colModel: [
      {
      name: 'SomeDate', index: 'SomeDate', width: 100, formatter: ndateFormatter }
      }],
   ...
});


// Convert C# json Date.
function ndateFormatter(cellval, opts, rwdat, _act) {
    var time = cellval.replace(/\/Date\(([0-9]*)\)\//, '$1');
    var date = new Date();
    date.setTime(time);
    return date.toDateString();
}
于 2009-08-05T01:19:46.557 に答える
2

大文字と小文字を区別するプロパティdatatypeは、大文字のTを持つdataTypeであることに注意してください。

于 2010-02-03T09:03:35.197 に答える
2

ASP.NET では、Date は JSON "/Date(ticks)/"としてシリアル化され、jqGrid では解釈できません。考えられる解決策 (投稿):

  • グリッド用のカスタム フォーマッタを作成する
  • グリッドに送信するデータを変更します (フォーマットされた日付を文字列として送信することにより)

jqGrid でどのように日付表示を実装したか教えてください。

ありがとうございました。

于 2009-08-03T04:24:43.383 に答える
1

jqGridをASP.NETで動作させるのに問題がある場合は、こちらをご覧ください。これにより、時間を大幅に節約できます。

于 2009-07-23T16:48:07.233 に答える