2012-06-05 54 views
3

我想在CGridView内包含一个Datepicker,如下所示,datepicker部件在网格视图中使用。CJUIDatePicker与CGridView不起作用

this->widget('zii.widgets.grid.CGridView', array(
'id'=>'order-grid', 
'dataProvider'=>$model->search(), 
'filter'=>$model, 
'columns'=>array(
    'order_id', 
    'customer.address.firstname', 
    'customer.address.lastname', 
    /*array('name' => 'ordering_date', 
     'value' => 'date("M j, Y", $data->ordering_date)'), 
    */ 

    array('name'=>'ordering_date', 
        'value'=>'$data->ordering_date',  
        'filter'=>$this->widget('zii.widgets.jui.CJuiDatePicker', array(
                'model'=>$model, 
                'attribute'=>'ordering_date', 
                'options'=>array(
                  'showButtonPanel'=>true, 
                  'changeYear'=>true, 
                  ) 
                ), 
                true), 
        'htmlOptions'=>array('width'=>'80','style'=>'text-align:center'), 
      ),    
    array(
     'class'=>'CButtonColumn', 
     'template' => '{view} {rollback} {receive}{pack} {dispatch}{delivered}', 
     'htmlOptions'=>array('width'=>'250px'), 

     'buttons'=>array(
      'receive'=>array(
       'id'=>'receive', 
       'name'=>'receive', 
       'url'=>'$this->grid->controller->createUrl("/shop/order/admin&received=true", array("id"=>$data->order_id,"asDialog"=>1,"gridId"=>$this->grid->id))', 
       'type'=>'submit', 
       'imageUrl'=>'/mdg/images/Receive1.png', 
       'visible'=>'($data->status=="pending")?true:false;' 
      ), 
      'pack'=>array(
       'id'=>'pack', 
       'name'=>'pack', 
       'type'=>'submit', 
       'url'=>'$this->grid->controller->createUrl("/shop/order/admin&packed=true", array("id"=>$data->order_id,"asDialog"=>1,"gridId"=>$this->grid->id))', 
       'click'=>'', 
       'imageUrl'=>'/mdg/images/pack1.png', 
       'visible'=>'($data->status=="received")?true:false;' 
      ), 
      'dispatch'=>array(
       'id'=>'dispatch', 
       'name'=>'dispatch', 
       'url'=>'$this->grid->controller->createUrl("/shop/order/admin&dispatched=true", array("id"=>$data->order_id,"asDialog"=>1,"gridId"=>$this->grid->id))', 
       'click'=>'', 
       'imageUrl'=>'/mdg/images/dispatch.png', 
       'visible'=>'($data->status=="packed")?true:false;' 
      ), 
      'delivered'=>array(
       'id'=>'delivered', 
       'name'=>'delivered', 
       'url'=>'', 
       'click'=>'', 
       'imageUrl'=>'/mdg/images/delivered1.png', 
       'visible'=>'($data->status=="dispatched")?true:false;' 
      ), 
      'rollback'=>array(
       'id'=>'rollback', 
       'name'=>'rollback', 
       'url'=>'$this->grid->controller->createUrl("/shop/order/admin&rollback=true", array("id"=>$data->order_id,"asDialog"=>1,"gridId"=>$this->grid->id))', 
       'click'=>'', 
       'imageUrl'=>'/mdg/images/rollback.jpg', 
       'visible'=>'($data->status=="pending")?false:true;' 
      ), 
     ), 
    ), 


'status', 

), 
'afterAjaxUpdate'=>'function(){ 
            jQuery("#'.CHtml::activeId($model, 'ordering_date').'").datepicker({showButtonPanel:true, changeYear:true}); 
          }', 

)); ?>

此代码取自在yiiframework论坛中给出的建议。但它没有做任何事情。

任何想法为什么这是? 谢谢!

+0

你为什么要这么做?可能有一个更简单的方法。 – adamors

+0

我想给用户选择通过日期选择器选择一个日期,然后根据它进行过滤。有不同的方法吗? – era

回答

2

在这种情况下,我会把日期选择器放在_search视图中。如果使用GII生成你的CRUD,它应该已经从admin观点是有,可得:

<?php echo CHtml::link('Advanced Search','#',array('class'=>'search-button')); ?> <div class="search-form" style="display:none">
<?php $this->renderPartial('_search',array( 'model'=>$model, )); ?> </div><!-- search-form -->

+0

亚我知道..但是,然后,因为页面刷新每次通过该搜索面板搜索时,我认为最好给CGridView本身的日期选择器,它通过ajax找到结果。任何想法为什么我的代码不起作用? – era

+0

搜索通过ajax完成,页面不刷新。 – adamors

+0

哦!该死的...亚..对不起马坏!我是yii框架中的新手。然后生病了!非常感谢!! – era