Yii gridview ajax自定义按钮发送前更新单元格值

时间:2013-04-05 06:07:46

标签: jquery gridview yii

我遇到了在yii gridview中通过ajax在特定相关单元格值中显示loader.gif beforesend函数的问题。这是我的gridview。

<?php $this->widget('zii.widgets.grid.CGridView', array(
'id'=>'deals-grid',
'dataProvider'=>$model->mersearch(),

'columns'=>array(
    'title',
    'description',
    array('header'=>'Valid Till','name'=>'valid','value'=>$data->valid),
    array('name' => 'status',
                'value'=>array($this,'getStatus'),
                'filter' => $active,'sortable'=>TRUE,
                'htmlOptions'=>array('class'=>'status'),
                ),
    array
            (   
            'name'=>'image',
                 'type'=>'image',
                            'value'=>array($this,'imagePath'),
                            'htmlOptions'=>array('class'=>'thumb','rel'=>'gallery'),
            ),
 array(
'class'=>'CButtonColumn',
'buttons'=>array
(

  'mail' => array
    (   
  'label'=>'mail',
  'imageUrl'=>Yii::app()->request->baseUrl.'/images/mail.png',
  'url'=>'Yii::app()->createUrl("deals/sendmail", array("id"=>$data->id))',
  'options' => array( 'ajax' => array('url'=>'js:$(this).attr("href")',
'beforeSend'=>'function(){
 var obj= $(".mail");
  obj.parent().parent().find(".status").replaceWith("<td class=\"status\"><img src=\"/images/loading.gif\"></td>");}',
                                                                'success'=>'function(data){$(".status").html("Mail Sent Successfully.")
                                                                    }',
                                    ),
                                                     'class'=>'mail',
                                    )),                                 

        ),
         'template'=>'{update}{delete}{mail}',
    ),
),
)); ?>

主要问题是,当我点击sendmail按钮时,它会用loading.gif替换所有父状态类单元格,但我只想替换被替换的行状态单元格而不是全部。

1 个答案:

答案 0 :(得分:0)

使用时

var obj= $(".mail");

你得到所有单元格,因为每个单元格都有“mail”类。

你应该只点击一个。尝试

var obj= $(this);

我没有测试过,这是个主意。