2

コントローラーアクションでユーザーデータをどのように設定しますか。私がやっている方法は、グリッドを壊すことです。私は運がない簡単なテストを試みています。動作しない私のコードは次のとおりです。ありがとう。

       var dataJson = new
        {

            total = 
            page = 1,
            records = 10000,
            userdata = "{test1:thefield}",
            rows = (from e in equipment
                    select new
                    {
                        id = e.equip_id,
                        cell = new string[] {
                e.type_desc,
                e.make_descr,
                e.model_descr,
                e.equip_year,
                e.work_loc,
                e.insp_due_dt,
                e.registered_by,
                e.managed_by
            }
                    }).ToArray()
        };
        return Json(dataJson);
4

1 に答える 1

2

配列に変換する必要はないと思います。私はjqGridを使用しましたが、Json関数にオブジェクトをシリアル化させました。問題が発生するかどうかはわかりませんが、少なくとも不要です。

また、ユーザー データは文字列として評価されます (文字列として送信しているため)。匿名オブジェクトとして送信してみてください。すなわち:

userdata = new { test1 = "thefield" },

合計の値と、それとページの間にカンマが必要です。(これはタイプミスだと思います。そのままではコンパイルできないと思います。)

EDIT:また、オプション「jsonReader:{repeatitems:false}」をjavascriptに追加することをお勧めします。これにより、コレクションを「{id: ID, cell: [ data_row_as_array ] }」構文に変換せずに「rows」フィールドで送信できます。colModel でプロパティ "key = true" を設定して、どのフィールドが ID であるかを示すことができます。これにより、データをグリッドに渡すのが非常に簡単になります。

于 2009-12-22T02:01:54.220 に答える