아주 명확한 해결 방법이 없으면 골치 아픈 시나리오에 직면하게됩니다. 문제는 제품 정보와 5d, 6m, 12m에 대한 투자 수익을 보여주는 gridview와 총 수익률이라고하는 다른 열이 있다는 것입니다. 이 총 수익률 % 열은 각 달마다 개별적으로 계산되며 데이터베이스의 별도 열에 저장됩니다.Yii Gridview Ajax를 사용하여 열 값 변경
이제 총 수익률이라는이 열을 만드는 방법은 사용자가 현재 정렬중인 월의 정보를 표시하는 것입니다. 따라서 사용자가 5d ROI 열을 기준으로 정렬하면 총 수익률이 5 %로 다시 계산됩니다. 사용자가 6m ROI 열에서 정렬하면 총 수익률은 다시 6m으로 다시 계산됩니다. 나는 사용자가 ROI 열을 정렬하는 것을 제외하고 모든 월의 총 수익률 열에 대해 false로 "visible"속성을 설정하여이 작업을 수행하는 방법을 찾으려고했지만 그 값은 작동하지 않습니다. 모든.
여기에있는 gridview입니다.
$this->widget('bootstrap.widgets.TbGridView', array(
'id' => 'product-news-grid-'. $id,
'itemsCssClass' => 'table table-striped',
'htmlOptions' => array(
'class' => 'news-datagrid',
),
'dataProvider' => $dataProvider->searchProductNewsSymbol($name, $headlines, $publish_date),
'filter' => $dataProvider,
'enableHistory' => false,
'ajaxUpdate' => 'product-news-grid-'. $id,
'ajaxUrl' => Yii::app()->createUrl('/productDetails/AjaxUpdateProductNews'),
'pager' => array(
'header' => '',
'cssFile' => false,
'maxButtonCount' => 5,
'selectedPageCssClass' => 'active',
'hiddenPageCssClass' => 'disabled',
'firstPageCssClass' => 'previous',
'lastPageCssClass' => 'next',
'firstPageLabel' => '<<',
'lastPageLabel' => '>>',
'prevPageLabel' => '<',
'nextPageLabel' => '>',
),
'summaryCssClass' => 'label label-warning',
'columns' => array(
array(
'name' => 'name',
'header' => 'Name',
'value' => function($data) {
return '<div class="product-name"> <a target="_blank" href="'. $data->id .'" > '. $data->name .'</a></div>';
},
'type' => 'raw',
),
array(
'name' => 'headlines',
'header' => 'Headlines',
'value' => function($data) {
return '<div class="product-news"> <a target="_blank" href="'. $data->link .'" > '. $data->headlines .'</a></div>';
},
'type' => 'raw',
),
array(
'name' => 'publish_date',
'header' => 'Date',
'value' => function($data) {
return '<span class="news-pub-date">'. $data->publish_date .'</span>';
},
'type' => 'raw',
),
array(
'name' => 'fived_roi',
'header' => '5d ROI',
'value' => function($data) {
return '<span class="news-pub-date">'. $data->fived_roi .'</span>';
},
'type' => 'raw',
),
array(
'name' => 'sixm_roi',
'header' => '6m ROI',
'value' => function($data) {
return '<span class="news-pub-date">'. $data->sixm_roi .'</span>';
},
'type' => 'raw',
),
array(
'name' => 'twlm_roi',
'header' => '12m ROI',
'value' => function($data) {
return '<span class="news-pub-date">'. $data->twlm_roi .'</span>';
},
'type' => 'raw',
),
array(
'name' => 'fived_profit',
'header' => 'Total Profit %',
'value' => function($data) {
return '<span class="news-pub-date">'. $data->fived_profit .'%</span>';
},
'type' => 'raw',
),
array(
'name' => 'sixm_profit',
'header' => 'Total Profit %',
'value' => function($data) {
return '<span class="news-pub-date">'. $data->sixm_profit .'%</span>';
},
'type' => 'raw',
'visible' => false
),
array(
'name' => 'twlm_profit',
'header' => 'Total Profit %',
'value' => function($data) {
return '<span class="news-pub-date">'. $data->twlm_profit .'%</span>';
},
'type' => 'raw',
'visible' => true
),
)
));
?>
나는 테이블 열 머리글에 클릭 처리기를 부착하고, 눈에 보이는 총 수익 % 열 사람이있는 다른보기를 렌더링함으로써이 작품을 만들기 위해 노력했다. 그러나 작동하지 않으면 분류가 작동하지 않고 전체 격자가 다른 격자를 렌더링 한 후에 분리됩니다.
아무도 올바른 방향으로 원하는 결과를 얻는 방법을 알려줄 수는 없습니다. 나는 어떤 도움을 주셔서 감사합니다.
덕분에, 맥스
편집
가 여기에 귀하의 버튼 클릭에 searchProductNewsSymbol의 코드()
public function searchProductNewsSymbol ($name ,
$headlines = NULL ,
$publish_date = NULL) {
// @todo Please modify the following code to remove attributes that should not be searched.
$criteria = new CDbCriteria ;
$criteria->select = 'name, publish_timestamp, publish_date, headlines, link, last_updated';
$criteria->group = 'headlines';
$criteria->compare ('name' ,
$name ,
true) ;
if (isset ($headlines) || $headlines != "") {
$criteria->compare ('headlines' ,
$headlines ,
TRUE ,
'AND') ;
}
if (isset ($publish_date) || $publish_date != "") {
$criteria->compare ('publish_date' ,
$publish_date ,
TRUE ,
'AND') ;
}
return new CActiveDataProvider ($this ,
array (
'criteria' => $criteria ,
'sort' => array (
'defaultOrder' => 'publish_date desc' ,
) ,
)) ;
}
데이터베이스 테이블의 구조를 게시하십시오. –
여기에서 솔루션을 확인하십시오. http://stackoverflow.com/questions/12292784/yii-how-to-ajax-update-the-cgridview – dev1234
@jailedabroad 잘 스키마는 게시물에 지정된 열과 동일합니다 – Maxx