2015-06-09 193 views
0

我想通過點擊CGridView CButtonColumn視圖按鈕我CGridView和CJuiModel打開CJuiModel如: -Ajax請求不工作CGridView更新後

 <?php 
       $dataProvider = new CArrayDataProvider($model->exhibitorLocation, array(
        'keys' => array('productId'), 
       )); 


       $this->widget('zii.widgets.grid.CGridView', array(
        'dataProvider' => $dataProvider, 
        'id' => 'exhibitor-location-grid', 
        'summaryText' => false, 
        'pager' => array(
         'class' => 'CLinkPager', 
         'header' => false, 
        ), 
        'columns' => array(
         array(
          'header' => 'S No.', 
          'value' => '++$row', 
         ), 
         array(
          'header' => 'Hall No', 
          'value' => '$data->location->hallNo', 
         ), 
         array(
          'header' => 'Stand No', 
          'value' => '$data->standNo', 
         ), 
         array(
          'class' => 'CButtonColumn', 
          'header' => 'Manage', 
          'template' => '{view}{delete}', 
          'buttons' => array(
           'view' => array(
            'imageUrl' => $this->module->assetsUrl . "/images/info_icon.png", 
            'options' => array('class' => 'exb-location'), 
            'url' => 'Yii::app()->createUrl("admin/venuemap/viewExbLocation", array("exbLocId"=>$data->primaryKey))', 
           ), 
           'delete' => array(
            'imageUrl' => $this->module->assetsUrl . "/images/delete_icon.png", 
            'url' => 'Yii::app()->createUrl("admin/venuemap/deleteExbLocation", array("exbLocId"=>$data->primaryKey))', 
           ), 
          ), 
          'htmlOptions' => array(
           'style' => 'width:100px;float:center' 
          ) 
         ), 
        ), 
        'rowCssClassExpression' => '($row%2 ? "visit2" : "visit1")', 
        'itemsCssClass' => 'visitor_list', 
        'htmlOptions' => array(
        ) 
       )); 
       ?> 
       <div class="name_field">Hall No<span>*</span></div> 
       <?php echo CHtml::dropDownList('hall-no', '', CHtml::listData(Venuemap::model()->findAll(), 'locationId', 'hallNo'), array('class' => 'name_input2', 'id' => 'hall-no')); ?> 

       <div class="name_field">Stand No</div> 
    <?php echo CHtml::textField('Stand No', '', array('class' => 'name_input', 'id' => 'stand-no')); ?> 

       <?php 
       echo CHtml::ajaxLink("Add Location", Yii::app()->createUrl('admin/venuemap/addExbLocation'), array(
        'type' => 'post', 
        'data' => array(
         'exhibitorId' => $model->exhibitorId, 
         'standNo' => 'js: $("#stand-no").val()', 
         'locationId' => 'js: $("#hall-no").val()' 
        ), 
        'success' => 'function(html){ $.fn.yiiGridView.update("exhibitor-location-grid"); }' 
         ), array('class' => 'search_btn')); 
       ?> 

       <?php 
        $this->beginWidget('zii.widgets.jui.CJuiDialog', array(
         'id' => 'location-dialog', 
         'options' => array(
          'title' => 'View Location', 
          'autoOpen' => false, 
          'modal' => true, 
          'width' => 'auto', 
          'height' => 'auto', 
          'resizable' => false 
         ), 
        )); 
        $this->endWidget(); 
        ?> 

    <?php 

    Yii::app()->clientScript->registerScript('view-location-ajax', " 


    $('.exb-location').click(function(){ 
     url=$(this).attr('href'); 
     $.ajax({ 
     type: 'post', 
     url: url, 
     success: function(result){ 
      $('#location-dialog').html(result).dialog('open'); 
      $('#draggable').draggable(); 
      return false; 
     } 
    }); 
     return false; 
    }); 


    "); 
    ?> 

視圖按鈕操作正常,並且在打開CJuiModel點擊但是當我在CGridView中添加一個新的位置時。 點擊查看按鈕我的CJuiModel不打開和頁面重定向到Url.Why我的jQuery更新失敗更新CGridView。幫助.. '上',而不是直接的事件使用JQuery

+0

你必須檢查發送的數據類型,如發佈或得到可能是這是衝突。 –

+0

類型:在我ClientScript –

+0

已經提到做它一贈類型超出既有可能是這種解決衝突 –

回答

0

更改AJAX調用綁定:

此:

... 

$('.exb-location').click(function(){ 
... 

更改爲:

... 

$('.exb-location').on('click', '.exb-location', function(){ 
... 

HTML元素被破壞和再生後CGridview刷新。在DOM加載之前,直接JQuery事件僅適用於現有元素。當他們被刪除,或新的元素後來被添加,direct events don't work