1

私はZendFrameworkを使用しているため、すぐにjqgridを使用する代わりに、「zfdatagriddeployjqgrid」を使用することにしました。サブグリッドでjqgridが欲しいです。グリッドは正常に表示されますが、展開ボタンをクリックすると、「読み込み中」という通知が表示されますが、何も起こりません。「subGridUrl」が正しく呼び出されることをデバッグしました。これは、サブグリッド用にMySQLからデータを選択する必要があるデバッガーヒット関数であり、(MySQLから選択する代わりに)純粋なjson応答を渡そうとしましたが、サブグリッドが表示されません。たぶん私はどのような反応が必要か理解できませんか?私の反応:

<...>
$responce = new stdClass();
$responce->rows[0]['id']='0';
$responce->rows[0]['cell']=array('0','test1','123','1');
$responce->rows[1]['id']='1';
$responce->rows[1]['cell']=array('1','test2','321','2');
$j = json_encode($responce);
echo $j;
<...>
4

1 に答える 1

1

すみません、悪いです。しかし、私の質問を削除する代わりに、他の誰かが同じことをする場合に備えて、私の間違いを説明します...

「subGridModel」の宣言を間違えました。代わりに配列を使用します:

$jqGrid->setJqgParams(array(
    'caption' => 'test report',
    <..>
    'subGrid' => true,
    'subGridUrl' => $this->view->url(array('controller'=>'report','action'=>'indexstoragebalancesubgrid'),'default', true),
    'subgridtype' => 'json',
    'loadonce' => false,
    // next line where problem fixed
    'subGridModel' => array(array("name" => array("ID", "Title", "Code", "Quantity"), "width" => array(10,55,200,80)))
    <..>
));

私は文字列を書きました:

'subGridModel'=>'[{name : ["ID", "Title", "Code", "Quantity"], width : [10,55,200,80]}]'

そしてそれがjavascriptで機能しなかった理由です。

ちなみに、配列を配列で書いたことがわかります。これは、1つの配列でZFDataGridが次のようなJavaScriptを生成するためです。

"subGridModel":{"name":["ID","Title","Code","Quantity"],"width":[10,55,200,80]}

これの代わりに:

"subGridModel":[{"name":["ID","Title","Code","Quantity"],"width":[10,55,200,80]}]

jqgridサブグリッドが機能することが重要です。

于 2013-01-28T19:26:02.240 に答える