0

連絡先の名前を表示するグリッドがあります。、名前、住所、メモなどの連絡先の詳細を表示する別のページ(詳細)にリンクする詳細ボタンが必要です...

ボタンをグリッドに追加する方法は知っていますが、詳細ページを表示するための最良の方法を探しています。読み取り専用データのフォームを見たことがありますし、カスタム テンプレートの作成も見ました。両方のユースケースがあると確信しています。最高のものは何ですか?

最後に、リンクされたページに id を渡すにはどうすればよいですか?

どんな助けでも大歓迎です。

4

1 に答える 1

1

今は完全な機能の回答は提供しませんが (現在の開発用ラップトップでは提供しません)、要するに:

  • 「エキスパンダー」タイプのグリッド列を使用できます。$grid->addColumn('expander',...);

  • 「ボタン」タイプのグリッド列 $b=$grid->addColumn('button',...) を使用し、ボタンがクリックされたときに if($b->isClicked()){... のようなコードを追加できます。 }。

どちらの場合も、グリッド行レコードの ID を持つ $_GET[xxx] パラメータを受け取ります。ここで、xxx は addColumn() メソッドで設定されたエキスパンダー/ボタン列の名前です。

数週間前に作成された新しいアドオン Romans を使用できます。親ページクラスに「注入」された新しいポップアップページ「インナーページ」の開き方についてです。


編集: id=xxx が設定された詳細ページに単純にリダイレクトする場合は、次のようにできます。

// Add button column to grid
$grid->addColumn('button','details','Details');

// Action to do when details button is clicked
// This must return JavaScript (use execute() method to do that immediately)
if(isset($_GET['details'])) {
    // redirect to page foo/bar&id=xxx
    $this->js()->univ()
        ->location($this->api->url('foo/bar',array('id'=>$_GET['details'])))
        ->execute();
}

JS コールバック機能が必要な場合は、location(url) の代わりに redirect(url,callback) または redirectURL(url,callback) を使用することもできます。

于 2013-01-01T16:39:00.973 に答える