2011-07-29 12 views

答えて

2

yiiListView.update jsヘルパ関数を使用して必要な処理を行うことができます。あなただけ例えば、あなたがデータプロバイダを決定するためのウィジェットを作成する前に条件を配置する必要があります:

$dp = ($_GET['type'] == 'sent') ? $sentMessages : $inboxMessages; 
$this->widget('zii.widgets.CListView', array(
    'dataProvider'=>$dp, 
    ... 

その後のようなクリックイベントでボタンを作成します。あなたがhereを探すことができ

$.fn.yiiListView.update('listMessages', 
{data:'type=sent', url:'/messages?sort=timestamp&ajax=listMessages'}); 

yiilistview.jsサンプルの詳細や検索。

+0

優秀!!これは完全に機能しました。どうもありがとうございました!! – Soph

0

私はそれが可能であると考えたいと思います。ただし、データプロバイダはサーバー側で割り当てられ(処理されます)。 jqueryを使用してデータプロバイダを変更する場合は、すべてのCListViewを非同期に再度ロードする必要があるようです。

+0

これは、私が望んでいたものよりかなり複雑です!単純に2つのCListViewを持つ方がいいでしょう。どう思いますか? – Soph

+0

それは難しいことではありません。あなたがする必要があるのは、そのボタンのクリックを検出し、jQueryから '$ .ajax({options ...});'を呼び出すことだけです。オプションの1つは「成功」です。これは、あなたが戻ってくるウェブで何かをすることを可能にします。 renderPartialを探すと、ソリューションの残りの半分が見つかります。とにかく、2つのリストビューを持ち、display:blockとdisplayの間で交互に表示する:noneは簡単です、yes。 – Korcholis

関連する問題