6

jqgriduserDataに渡す必要がありますが、これを行う方法の例が見つかりません。これが私の試みです:

サーバーから送信:

{ total: 25,
  page: currentpage,
  userData: {foo: 'bar'},
  rows: myRows }

そしてjqgridで:

var data = jQuery("#grid").getGridParam('userData');

userDatajqgridから送信して読み取るにはどうすればよいですか?

編集: FiddleruserDataで確認できるため、送信されていることがわかります。クライアント側でそれを読む方法にこだわっているだけだと思います。

4

2 に答える 2

17

一般に、 の使用法userDataは非常に単純です。jqGrid は、jqGrid データと一緒に保存される追加データをサーバーから送信することをサポートします。そのため、jqGrid がサーバーから返されたデータを解析する場合、それは単に探して(userdataではなくuserData!!!)、保存は内部パラメーターにありますuserData

{ "total":25,
  "page":1
  "records":107,
  "userdata": {"foo": "bar"},
  "rows": [...] }

注意: 入力データのデフォルト プロパティは、現在のように変更userdataする必要があります。入力プロパティのデフォルト名を上書きすることができますまたはまたはを追加データのプロパティ名として使用する場合。 userDatajsonReader: {userdata: "userData"}jsonReader: {userdata: "myData"}userDatamyData

の標準的な使用方法の 1 つは、jqGrid でフッターuserDataを表示するためのものです。他の提案にデータを使用できます。別の回答では、サーバーからデータをロードした直後にいくつかの行を選択する方法が示されています。userData

loadonce:trueパラメータを使用する場合userData、最初のロード後にパラメータからのデータが削除されるため、その使用法は少しトリッキーになりuserDataます。そのため、外部オブジェクトに保存する必要があります。

当然のことながら、データがロードされた後userDataにのみアクセスできます。そのため、 loadCompleteイベント ハンドルjQuery("#grid").getGridParam('userData')内またはそれ以降でこれを行う必要があります。ところで、loadCompleteイベント ハンドルの内部では、loadComplete イベントのパラメーターを介してサーバーから送信されるすべてのデータにアクセスできます。したがって、他の追加データを読み取って、そこに保存できます。data

于 2010-10-03T11:14:21.710 に答える
1

デフォルトでは、jqGrid はこの形式の JSON を受け入れます。

{"rows":
    [{"foo":"bar"}]
}

jqgrid オプションを設定すると、次のようになります。

$("#cashflow-sheet").jqGrid({
    url:'bbc-json.html',
    datatype: "json",
        ...
于 2010-10-03T06:31:42.483 に答える