0

我面临在特定相关单元格值中通过 ajax 在 yii gridview 中显示 loader.gif beforesend 函数的问题。这是我的网格视图。

<?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 替换所有父状态类单元格,但我只想替换已替换的行状态单元格,但不是全部。

4

1 回答 1

0

当你使用

var obj= $(".mail");

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

你应该只得到一个点击。尝试

var obj= $(this);

我没有测试,这是一个想法。

于 2013-07-09T13:58:13.877 回答