2013-08-17 86 views
4

我一直在從過去10天yii框架的工作。我在我的項目中做了很多,但我堅持一個問題。在下表中,當我點擊任意行時,它應該獲得jquery對話框中所選行的數據,並且當點擊表格工具欄上的編輯按鈕時,應該打開它。 enter image description here如何選擇並獲取yii的Cgridvew的行號

作爲例子,當我用戶單擊列出的行中的任何行,然後突出顯示,如果單擊編輯按鈕,它應該打開對話框的形式與選定的行數據。 這裏是我的代碼.....

 <table class="display" id="dt3"> 
     <ul class="table-toolbar"> 
      <li><a href="#" id="create-user"><img src="<?php echo Yii::app()->request->baseUrl; ?>/images/icons/basic/plus.png" alt="" /> Add</a></li> 
      <li><a href="#"><img src="<?php echo Yii::app()->request->baseUrl; ?>/images/icons/basic/delete.png" alt="" /> Delete</a></li> 
      <li><a href="#" id="create-user2"><img src="<?php echo Yii::app()->request->baseUrl; ?>/images/icons/basic/edit.png" alt="" /> Edit</a></li> 
      </ul> 
      <ul> 
     <table class="display" id="dt4"> 

      <tr> 
     <?php 
      $dataProvider=new CActiveDataProvider('Station'); 
      $this->widget('zii.widgets.grid.CGridView', array 
      ( 
        'dataProvider'=>$dataProvider, 
        'itemsCssClass'=>'display', 
        'summaryText'=>'',     
        'rowCssClass'=>array('odd gradeX','even gradeC'), 
        'htmlOptions'=>array('class'=>'display'), 
        'columns'=>array(

         array 
         ( 
          'name'=>'Station Name',  
          'value'=>'$data->Station_Name', 
         ), 

         array 
         ( 
          'name'=>'Status ',   
          'value'=>'$data->Status_value', 
         ), 

         array 
         (   
          'name'=>'Description ', 
          'value'=>'$data->Station_Description', 
         ), 
         array 
         (   
          'name'=>'Order ID ', 
          'value'=>'$data->OrderID', 
         ), 
         array 
         (   
          'name'=>'Updated By ', 
          'value'=>'$data->Updated_by', 
         ), 
        ), 

       ) 

        ); ?>  
    </tr> 
     </table> 
      </ul> 
     </table> 




    <div id="dialog-form" title="Add/Edit Station" class="box-content" style="height: 100px"> 
     <form action="index.php?r=setting/stations" method="POST">  

     <div class="form-row"> 
     <label class="form-label">Station Name</label> 
     <div class="form-item"> 
      <input type="text" name="station_name" /> 
     </div> 
     </div> 

     <div class="form-row"> 
     <label class="form-label">Description</label> 
     <div class="form-item"> 
      <input type="text" name="station_description"/> 
     </div> 
     </div> 

     <div class="form-row"> 
     <label class="form-label">Order Id</label> 
     <div class="form-item"> 
      <input type="text"name="order_Id" /> 
     </div> 
     </div> 

     <div class="form-row"> 
     <label class="form-label">Updated By</label> 
     <div class="form-item"> 
      <input type="text" name="updated_by" /> 
     </div> 
     </div> 

    <ul style="float:right;"> 
     <li style="float:right;"><a href="#"><input type="submit" class="button small green" value="Add Station"></a></li> 
     </ul> 

     </form> 
     </div> 
+0

對不起,不是一個正確的答案,但也許你只是尋找[這個(http://www.yiiframework.com/doc/api/1.1/CGridView#selectionChanged-detail)? – ippi

回答

1

不應該將id屬性添加到您的CGridView配置:在你的JavaScript代碼

'id' => 'station-grid', 

然後在任何時候,你可以得到當前選擇的行搭配:

var selected = $('#station-grid').yiiGridView('getSelection'); 

例如,你可以使用上面的click處理每個您的網格。這取決於你,如何將它整合到你的javascript中。

1

對於我們使用所有選中的行ID這個

var id = $.fn.yiiGridView.getChecked("your-grid-id", "selectedIds"); // array of seleted id's from grid 

如果點擊行比我們可以得到ID這樣

var id = $.fn.yiiGridView.getSelection(grid_id); 
var id = id[0];