update CGridView mit ajax nicht funktioniert

Habe ich ein raster mit CGridView und Wann immer ich versuche, es zu aktualisieren, bekomme ich diesen Fehler. versuchen, einen Weg zur Behebung dieses für eine lange und konnte immer noch nicht bekommen es funktioniert. Ich bin mir nicht sicher, was ich bin fehlt.

folgende ist, was ich verwende, zu zwingen, das Netz zu aktualisieren, wenn das klicken auf eine Schaltfläche Auftritt.

$('#sessions .refreshdata').live('click', function(e) {
   e.preventDefault();
   $.fn.yiiGridView.update('sessions-grid');
}
);

Kommt der Fehler liegt,

TypeError: settings is undefined

$grid.addClass(settings.loadingClass);

Ich habe keine Ahnung, von wo dieser Trigger.

update CGridView mit ajax nicht funktioniert

BEARBEITEN 1,

Versuchte ich mit der Einstellung Prozess-output wahr und dann hat es geklappt, aber es verwirrt mit meinem UI und andere benötigte Skripte in der gleichen Seite.

$this->getController()->renderPartial('sessionGrid', $params, false, true);

Ich habe immer yii standardmäßig gridview und die Stile. verwirrt, warum dies geschieht.

Sortierung auch nicht in dem gleichen raster. Wenn ich auf eine Sortierung link, der den Namen einer Spalte aus, die Sie aktualisieren Sie die Seite und bringt mich zu einer anderen Seite. also Ajax ist völlig funktioniert nicht in diesem Fall.

EDIT 2,

Unten Weg, auch wegen der Arbeit wie bereits in ANTWORT 1

console.log('came in');
e.preventDefault();
$.fn.yiiGridView({ 'ajaxUpdate':['sessions-grid'] }); 
console.log('came out');

wie kann ich erzwingen, das Netz zu aktualisieren oder zu aktualisieren ?

EDIT 3,

Wenn ich den normalen Weg, eine Fehlermeldung kommt von jquery.yiigridview.js. Einstellungen ist undefiniert - Zeile 203.. $grid.addClass ("Einstellungen".loadingClass);

return this.each(function () {
var $form,
$grid = $(this),
id = $grid.attr('id'),
settings = gridSettings[id];
$grid.addClass(settings.loadingClass); 

BEARBEITEN 4, ich bin hier unten kopieren der cgridview code und action.

<?php TK::registerCssFile('grid');?>
<div id="sessions">
<h4><?php echo Yii::t('activity', (isset($model->activity->name) ? $model->activity->name . ' Sessions'  : 'Sessions')) ?></h4>
<?php $this->beginContent('application.views.templates.form', array('options'=>array('id'=>'sessions-form'))); ?>
<?php echo CHtml::hiddenField('activities_id', $model->activities_id); ?>
<?php echo CHtml::hiddenField('source', $source); ?>
<?php
$this->widget('application.components.SGridView', array(
   'id'=>'sessions-grid',
   'dataProvider'=>$model->search(),
   'filter'=>$model,
   'emptyText'=>(!empty($model->activities_id)) ? 'No results found.' : 'Please select activity from top grid.',
   'showNew'=>(!empty($model->activities_id) &&  Yii::app()->user->checkAccess("piActivitySessionsCreate") && $model->activity->source === 'iJOB') ? true : false,
   'newButtonCss'=>'new dialog-link-session',
   'createUrl'=>Yii::app()->controller->createUrl("/activities/default/sessionCreate", array("activities_id"=>$model->activities_id)),
   //'showExport'=>true,
   'columns'=>array(
      /*
      array('type'=>'raw',
         'value'=>'CHtml::hiddenField("ActivitySession[$data->id]", false, array(\'value\'=>$data->id))',
         'htmlOptions'=>array('style'=>'width:0%;'),
         'headerHtmlOptions'=>array('style'=>'width:0%;')),
      */      
      array('name'=>'site_id',
         //'value'=>'CHtml::link($data->sites->code, "#", array("title"=>$data->sites->name))',
         //'value'=>'CHtml::label($data->sites->code, null, array("title"=>$data->sites->name))',
         'value'=>'$data->sites!=null ? CHtml::tag("div", array("title"=>$data->sites->name), $data->sites->code) : ""',
         'type'=>'raw',
         'htmlOptions'=>array('style'=>'width:16%;'),
         'headerHtmlOptions'=>array('style'=>'width:16%;')),
      array('name'=>'location',
         'htmlOptions'=>array('style'=>'width:30%;'),
         'headerHtmlOptions'=>array('style'=>'width:30%;')),
      array('name'=>'start_time',
         'value'=>'Yii::app()->dateFormatter->formatDateTime($data->start_time, "medium", "short")',
         'htmlOptions'=>array('style'=>'width:15%;'),
         'headerHtmlOptions'=>array('style'=>'width:15%;')),
      array('name'=>'end_time',
         'value'=>'Yii::app()->dateFormatter->formatDateTime($data->end_time, "medium", "short")',
         'htmlOptions'=>array('style'=>'width:15%;'),
         'headerHtmlOptions'=>array('style'=>'width:15%;')),
      /*
      array('name'=>'max_positions',
         'htmlOptions'=>array('style'=>'width:6%;'),
         'headerHtmlOptions'=>array('style'=>'width:6%;')),
      */
      array('name'=>'closed',
         'value'=>'$data->closed == "1" ? Yii::t("activity", "Yes") : Yii::t("activity", "No")',
         'filter'=>array("0"=>Yii::t("activity", "No"), "1"=>Yii::t("activity", "Yes")),
         'htmlOptions'=>array('style'=>'width:6%;text-align:left;'),
         'headerHtmlOptions'=>array('style'=>'width:6%;')),
      array('name'=>'registered',
         'type'=>'raw',
         'value'=>'$data->registeredCount . \'/\' . $data->max_positions',
         'filter'=>false,
         'sortable'=>true,
         'htmlOptions'=>array('style'=>'width:8%;text-align:right;padding-right:15px'),
         'headerHtmlOptions'=>array('style'=>'width:8%;')),
      array('class'=>'CButtonColumn',
         'template'=>'{users} {view} {update} {delete}',
         'header'=>Yii::t("activity","Actions"),
         'headerHtmlOptions'=>array('style'=>'width:10%;'),
         'htmlOptions'=>array('style'=>'width:10%;'),
         'buttons'=>array(
            'users'=>array(
               'visible'=>'(Yii::app()->user->checkAccess("piActivityJobseekerRead") || Yii::app()->user->checkAccess("piActivityJobseekerUpdate")) ? true : false',
               'url'=>'Yii::app()->controller->createUrl("/activities/participants/index", array("session_id"=>$data->id))',
               'imageUrl'=>Yii::app()->request->baseUrl.'/images/base/users.png',               
               'options'=>array(
                  //'class'=>'users dialog-link-session',
                  'title'=>Yii::t('activity', 'Participants'),
               ),
            ),
            'view'=>array(
               'visible'=>'(Yii::app()->user->checkAccess("piActivitySessionsRead") && 
                  !Yii::app()->user->checkAccess("piActivitySessionsUpdate") && $data->activity->source === "iJOB") ||
                  ($data->activity->source === "ESS") ? true : false',
               'url'=>'Yii::app()->controller->createUrl("/activities/default/sessionView", array("id"=>$data->id))',
               'options'=>array('class'=>'view dialog-link-session'),
            ),
            'update'=>array(
               'visible'=>'(Yii::app()->user->checkAccess("piActivitySessionsUpdate") && $data->activity->source === "iJOB") ? true : false',
               'url'=>'Yii::app()->controller->createUrl("/activities/default/sessionUpdate", array("id"=>$data->id))',
               'options'=>array('class'=>'update dialog-link-session'),
            ),
            'delete'=>array(
               'visible'=>'(Yii::app()->user->checkAccess("piActivitySessionsDelete") && $data->activity->source === "iJOB") ? true : false',
               'url'=>'Yii::app()->controller->createUrl("/activities/default/sessionDelete", array("id"=>$data->id))',
               'options'=>array('class'=>'delete dialog-link-session'),
            ),
         ),
      ),
      array('type'=>'raw',
         'value'=>'$data->registeredCount',
         'htmlOptions'=>array('style'=>'display:none;'),
         'headerHtmlOptions'=>array('style'=>'display:none;'),
      ),
   ),
));
?>
<?php $this->endContent(); ?>
</div>
<style type="text/css">
.grid-view-body
{
    height: 170px;
}
</style>

UND in Aktion....

public function run()
   {
      Yii::app()->clientScript->scriptMap['*.js'] = false;
      $activities_id = (TK::get('activities_id') ? TK::get('activities_id') : (TK::post('activities_id') ? TK::post('activities_id') : 0));
      $source = (TK::get('source') ? TK::get('source') : (TK::post('source') ? TK::post('source') : 'iJOB'));

      if ($activities_id === null)
        throw new CHttpException(500, Yii::t('activity', 'The requested activity does not exist.'));

      $model = new ActivitySession('search');
      $model->unsetAttributes();
      $model->activities_id = $activities_id;
      $model->closed = null;     

      if (isset($_GET['ActivitySession']))
         $model->attributes = $_GET['ActivitySession'];

      $params = array('model'=>$model, 'source'=>$source);

      if (Yii::app()->request->isAjaxRequest)
         $this->getController()->renderPartial('sessionGrid', $params, false, true);
      else
         $this->getController()->renderPartial('sessionGrid', $params, false, true);
   }

Dann habe ich das gridview-Steuerelement, wie im folgenden zusammen mit der refresh-Taste...

update CGridView mit ajax nicht funktioniert

Nach porcessedOutput = true, das erfrischt arbeiten, aber jedes mal, wenn er um eins erhöht.. so aktualisieren, tritt jetzt mehrere mal.. unten ist ein erfassen von es geschah 3 mal. update CGridView mit ajax nicht funktioniert

Wie kann ich verhindern, das erfrischende geschieht mehrere mal meine Frage.

Dieses problem tritt in allen Browsern?
ja, es passiert in allen und Gitter nicht aktualisieren mit der Schaltfläche klicken. pls überprüfen Sie die bearbeiteten Abschnitt zu dieser Frage vor.
und das Sortieren nach Spalten funktioniert?
nope, die Sortierung funktioniert nicht und führt mich zu einer Seite mit aktualisieren. jeder ajax-Aktion nicht funktioniert, es scheint in dieses raster.
können Sie zeigen, das cgridview hier bitte. das problem könnte sein, wie Sie es einrichten

InformationsquelleAutor dev1234 | 2013-09-10

Schreibe einen Kommentar