После нескольких попыток я наконец добился желаемого поведения. Это было тяжелее, чем я ожидал, может быть, есть более простой способ, но у меня есть то, что у меня есть.
Таким образом, я использовал
div.keys
Это CListView использует для предоставления URL-адреса данных для обновления.
Каждый раз, когда пользователь добавляет или удалить комментарий, мы называем метод обновления
$.fn.yiiListView.update('commentsList');
Это берет название атр из div.keys. Итак, я решил изменить заголовок attr вручную, прежде чем вызывать метод обновления. Я также необходимую информацию о общем количестве страниц, поэтому я добавить класс к моему commentsList
$this->widget('bootstrap.widgets.TbListView',array(
'dataProvider'=>$dataProvider,
'itemView'=>'/comment/_comment',
'id'=>'commentsList',
'htmlOptions' => array(
"class"=>$pager->pageCount,
),
));
Я написал функцию, чтобы получить всю информацию
var getUrlInfo = function() {
var divKeys = commentsBlock.find('div.keys'),
keys = divKeys.attr('title'),
currentPage = "",
lastPage = parseInt (commentsBlock.find('#commentsList').attr('class')) +1,
temp = keys.lastIndexOf("page=") + 5,
pageNumberIndex = temp;
while (!isNaN(parseInt(keys[temp]))) {
currentPage +=keys[temp];
temp++;
};
return {'divKeys':divKeys, 'keys':keys, 'currentPage':currentPage, 'lastPage':lastPage, 'pageNumberIndex':pageNumberIndex};
};
И после этого, я установил правила, чтобы изменить название Аттрибут для добавления комментария var urlInfo = getUrlInfo(); , если (urlInfo.currentPage.length) { urlInfo.divKeys.attr ( 'название', urlInfo.keys.slice (0, urlInfo.pageNumberIndex) + urlInfo.lastPage + urlInfo.keys.slice (urlInfo.pageNumberIndex + urlInfo.currentPage.length) ); }
else {
if (urlInfo.keys.indexOf('ajax')>0)
{
urlInfo.divKeys.attr('title', urlInfo.keys + "&page=" + urlInfo.lastPage);
}
else urlInfo.divKeys.attr('title', urlInfo.keys + "?page=" + urlInfo.lastPage);
}
и для удаления комментариев функции
var urlInfo = getUrlInfo();
if (!urlInfo.currentPage.length) {
console.log('da');
if (urlInfo.keys.indexOf('ajax')>0)
{
urlInfo.divKeys.attr('title', urlInfo.keys + "&page=" + urlInfo.lastPage);
}
else urlInfo.divKeys.attr('title', urlInfo.keys + "?page=" + urlInfo.lastPage);
}
Я также установить это правило для моего view.php
if(!Yii::app()->request->getQuery('ajax') && !Yii::app()->request->getQuery('page')) {
$pager->currentPage=$pager->pageCount;
}
Вы пытались представить комментарии в обратном порядке? – topher
конечно :), но я заинтересован в asc odder, я думаю, что это более удобно. –