2012-01-22 14 views
2

単純な問題のようですが、解決策が見つかりません。MVCGridを更新した後のMVCGrid/MVCForm MVCFordを更新した後の行

私は、MVCFormにリンクされたエクスパンダ列を使用してMVCGridを持っています。私はフォームを介して簡単に更新を適用することができますが、私は更新後にMVCGridを更新する必要があります。この場合、私はMVCgridにPhysCityを表示しています。これをMVCFormで更新して、その変更をMVCGridに戻しておきたいのです。

ありがとうございます!

<?php 
class page_cview extends Page { 
function initMainPage(){ 

    if(!$this->api->auth->isLoggedIn())$this->api->redirect('/'); 

    $g=$this->add('MVCGrid'); 
    $g->setModel('customer_cv',array('custname','Name','PhysAddr1','PhysCity','PhysState')); 
    $g->addColumn('expander','details','View/Update'); 
} 
function page_details(){ 

    //var_dump($_GET); 

    $f=$this->add('MVCform'); 
    $f->setModel('customer_cv') 
     ->loadData($_GET['id']); 
    $f->addSubmit("Update"); 

     if($f->isSubmitted()){ 
     $f->update(); 
     $this->js()->univ()->successMessage('Saved')->closeExpander()->execute(); 
     } 
} 
} 

答えて

1

あなたは、あなたがオブジェクトへのアクセスを持っていない項目を更新することができます気の利いたトリックを使用することができます。ここでは

は私が持っているものです。

$grid->js(true)->addClass('myreload'); 
$grid->js('myreload')->reload(); 
その後、どこか他の

$this->js()->_selector('.myreload')->trigger('myreload')->execute(); 

これはjQueryのにカスタムイベントハンドラを設定し、グリッドのためのイベントをトリガします。

0

ありがとうromaninsh!私はjqueryを深く掘り下げる必要があります。 ここに、上記のATK4 MVCGrid/MVCFormのアップデート版があります。

<?php 
class page_cview extends Page { 
function initMainPage(){ 

    if(!$this->api->auth->isLoggedIn())$this->api->redirect('/'); 

    $g=$this->add('MVCGrid'); 

    $g->js(true)->addClass('myreload'); 
    $g->js('myreload')->reload(); 

    $g->setModel('customer_cv',array('custname','Name','PhysAddr1','PhysCity','PhysState')); 
    $g->addColumn('expander','details','View/Update'); 
} 
function page_details(){ 

    //var_dump($_GET); 

    $f=$this->add('MVCform'); 
    $f->setModel('customer_cv') 
     ->loadData($_GET['id']); 
    $f->addSubmit("Update"); 

     if($f->isSubmitted()){ 
     $f->update(); 
     $this->js() 
      ->_selector('.myreload')->trigger('myreload') 
      ->univ() 
       ->successMessage('Saved') 
       ->closeExpander()->execute(); 
     } 
} 
} 
関連する問題