문제

yii 1.1.14

내 테이블이 90 개 이상의 레코드를 보유하고 있으면 CGridView가 최신 레코드 을로드하지 않도록 CGridView가 실패합니다.일부 레코드를 삭제하고 90 미만을 가져 오면 다시 가장 최근의 기록을 보여줍니다.

  • 최신 레코드를 보여주기 위해 cgridView를 어떻게 얻을 수 있습니까?

My Model :: Search ()는 거의 상자 밖에 있습니다.(변경 사항 : 내림차순 정렬).

public function search()
{
    // @todo Please modify the following code to remove attributes that should not be searched.

    $criteria=new CDbCriteria;

    $criteria->compare('id',$this->id);
    $criteria->compare('xpl',$this->xpl,true);
    $criteria->compare('phpClass',$this->phpClass,true);
    $criteria->compare('line',$this->line);
    $criteria->compare('function',$this->function,true);
    $criteria->compare('usr',$this->usr,true);
    $criteria->compare('guessedName',$this->guessedName,true);
    $criteria->compare('email',$this->email,true);
    $criteria->compare('cls',$this->cls);
    $criteria->compare('vis',$this->vis);
    $criteria->compare('cet',$this->cet,true);
    $criteria->compare('trace',$this->trace,true);
    $criteria->compare('iconID',$this->iconID);
    $criteria->compare('albumID',$this->albumID);
    $criteria->compare('record_created',$this->record_created,true);
    $criteria->compare('timestamp',$this->timestamp);
    $criteria->compare('vrs',$this->vrs,true);

    return new CActiveDataProvider($this, array(
        'criteria'=>$criteria,
                    'sort'=>array(
                        'defaultOrder'=>'id DESC',
                    ),
    ));
}
.

여기에 내 견해가 있습니다 :

<?php

Yii::app()->ClientScript->registerScriptFile($this->assetsBase.'/js/plug.note.js', CClientScript::POS_END);
Yii::app()->clientScript->registerCssFile($this->assetsBase.'/css/x0.css');
Yii::app()->ClientScript->registerCssFile($this->assetsBase.'/fontello/css/fontello.css', 'screen');
Yii::app()->ClientScript->registerCssFile($this->assetsBase.'/fontello/css/animation.css', 'screen');
$this->breadcrumbs=array(
'Ifas'=>array('index'),
'Manage',
);
$this->menu=array(
array('label'=>'List Ifa', 'url'=>array('index')),
array('label'=>'Create Ifa', 'url'=>array('create')),
);

Yii::app()->clientScript->registerScript('search', "
$('.search-button').click(function(){
$('.search-form').toggle();
return false;
});
$('.search-form form').submit(function(){
$('#ifa-grid').yiiGridView('update', {
    data: $(this).serialize()
});
return false;
});
// set up polling at interval
$(function() {
    $.fn.note('poll');
});
");
?>
<style>
i.icon-tag, i.icon-wrench {font-size: 18px;}
</style>
<div style="float: left; margin-right: 10px;">Notes (Family Archives)</div>
<div style="float:right; margin-left: 10px;">
<div class="ERR" style="float:left;">
    <input type="radio" name="cls" id="cls3" onclick="$('.row input[name=\'Ifa[cls]\']').val(3).submit();">
    <label for="cls3">error</label>
</div>
<div class="WAR" style="float:left;">
    <input type="radio" name="cls" id="cls2" onclick="$('.row input[name=\'Ifa[cls]\']').val(2).submit();">
    <label for="cls2">warning</label>
</div>
<div class="INF" style="float:left;">
    <input type="radio" name="cls" id="cls1" onclick="$('.row input[name=\'Ifa[cls]\']').val(1).submit();">
    <label for="cls1">info</label> 
</div>
<div class="DBG" style="float:left;">
    <input type="radio" name="cls" id="cls0" onclick="$('.row input[name=\'Ifa[cls]\']').val(0).submit();">
    <label for="cls0">debug</label>
</div>
<div class="" style="float:left; background-color:#CCCCCC;">
    <input type="radio" name="cls" id="cls" onclick="$('.row input[name=\'Ifa[cls]\']').val('').submit();">
    <label for="cls">all</label>
</div>
</div>
<div style="float:right; background-color:#CCCCCC; margin-left: 10px;">
    <input type="radio" name="vis" id="vis1" onclick="$('.row input[name=\'Ifa[vis]\']').val(1).submit();" checked="checked">
    <label for="vis10">visible</label>  
    <input type="radio" name="vis" id="vis0" onclick="$('.row input[name=\'Ifa[vis]\']').val(0).submit();">
    <label for="vis0">invisible</label>    
    <input type="radio" name="vis" id="vis" onclick="$('.row input[name=\'Ifa[vis]\']').val('').submit();">
    <label for="vis">both</label>  
</div>
<div style="float:right; background-color:#CCCCCC; margin-left: 10px;">
    <input type="checkbox" id="poll" onclick="" checked="checked">
    <label for="poll">polling (<span id="lag">?</span> s)</label>  
</div>
<div style="float:right; background-color:#CCCCCC; margin-left: 10px;        "onclick="$.fn.note('max_id')">
max id <span id="max-id">?</span>
</div>

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

<?php $this->widget('zii.widgets.grid.CGridView', array(
'id'=>'ifa-grid',
'dataProvider'=>$model->search(),
'filter'=>$model,
    'rowCssClassExpression' => '$data->getRowCssClass()',
'columns'=>array(
    'id',
    'xpl',
    'phpClass',
    'line',
    'function',
    'usr',
    'guessedName',
    'email',
    array(
                'name' => 'cls',
                'visible' => false
            ),
    array(
                'name' => 'vis',
                'visible' => false
            ),
    //'cet',
    //'trace',
    'iconID',
    'albumID',
    'record_created',
    //'timestamp',
    'vrs',
    array(
        'class'=>'CButtonColumn',
                    'template'=>'{view}{delete}{cet}{trace}',
                    'buttons'=>array
                    (
                        'delete' => array
                        (
                            'click'=>"function(){
                                $(this).note('update', {'vis': 0}).note('remove row');
                                return false;}",
                            'url'=>'"#"',
                            'visible'=> '$data->vis > 0',
                        ),
                        'cet' => array
                        (
                            'label'=>'<i class="icon-tag"></i>',
                            'click'=>"function(){
                                $(this).note('modal cet');
                                return false;}",
                            'url'=>'"#"',
                        ),
                        'trace' => array
                        (
                            'label'=>'<i class="icon-wrench"></i>',
                            'click'=>"function(){
                                $(this).note('modal trace');
                                return false;}",
                            'url'=>'"#"',
                            'visible'=> 'strlen($data->trace) > 0',
                        ),
                    ),
    ),
),
)); ?>
.

도움이 되었습니까?

해결책

귀하의 질문은 문제를 제대로 설명하지 않으므로 매우 혼란 스럽습니다.최신 기록은 무엇입니까?목록이 표시되면 레코드가 장면 뒤에 추가되고 목록을 탐색 할 때 목록을 탐색 할 때 목록을 탐색 할 때

쿼리가 캐시되기 때문에 문제가 발생할 수 있습니다.

와 같은 상태를 넣을 수 있습니다.
return array(
            'condition'=>"1<='".time()."'",
        );
.

모든 쿼리를 고유하게 만들 수 있도록 모든 쿼리가 캐시되지 않습니다.

다른 팁

페이지 매김을 False로 설정하여 모든 레코드를 표시합니다

return new CActiveDataProvider($this, array(
        'criteria'=>$criteria,
        'pagination'=>false,
                    'sort'=>array(
                        'defaultOrder'=>'id DESC',
                    ),
    ));
.

새로운 레코드 만 표시하려면이 메일에서 읽지 않은 메시지를 보여주는 것과 같습니다.따라서 테이블에 새 필드를 "is_read"로 추가하고 삽입하는 동안 각 레코드마다 0으로 설정하십시오.

다음에 RECAL READ (첫 번째보기)를 한 번, "is_read"에 대해 1로 설정할 수 있습니다.

GridView Criteria에서 새 레코드 "is_read= 0"

새 레코드를 표시하는 조건을 추가하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top