0

MVC アプリで dForm を使用したい。次のjson文字列からフォームを構築しようとすると、問題ありません。

 var formdata = {
        'action': 'index.html',
        'method': 'get',
        'elements':
                [
                 {
                  "type":"select",
                  "name":"Name",
                  "caption":"Name",
                  "options":"first":{"html":"first","class":"active"},
                            "second":{"html":"second","class":"active"},
                  "selected":null
                 } 
               ]
  };

しかし、次のような要素に生成された部分を使用すると:

 var elements = {
                "action": "index.html",
                "method": "get",
                "elements":
                        [
                             $('#jqgrid').jqGrid('getGridParam', 'userData')
                        ]
            };
            $('#myform').buildForm(elements);

dform から次のエラーが表示されます。

    uncaught exception: No element type given! Must always exist.

しかし、「要素」タグは最初の例で投稿したものと同じだと確信しています。

firebug では、取得した jqGrid の文字列 userData を次の形式で見ることができることがわかりました。

"userdata":"{\"type\":\"select\",\"name\":\"Name\",\"caption\":\"Name\",\"options\":{\"first\":\"first\" .....

JObject から userData を生成します。問題があるのか​​もしれません。エスケープ文字「\」を置き換えようとしましたが、成功しませんでした。

4

1 に答える 1

0

その形式は正しくないようです。おそらく変換しようとしています

{ "userdata" : "JSON String" }

私が言えることから、おそらくあなたはしなければならないでしょう:

JSON.parse($('#jqgrid').jqGrid('getGridParam', 'userData').userdata);

それでも問題が解決しない場合は、Google グループをチェックしてください。おそらくそちらの方が簡単です。

于 2012-06-04T00:24:42.383 に答える