我使用的一个解决方案是为 Grid 添加格式类型:到 lib/Grid/advenced.php
我添加了一个智能按钮:
function init_smartButton($field){
@$this->columns[$field]['thparam'].=' style="width: 40px; text-align: center"';
$this->js(true)->find('.button_'.$field)->button();
}
function format_smartButton($field){
$product = $this->add('Model_Product')->load($this->current_id);
if($product->acceptButton($field))
{
$this->current_row_html[$field]='<button type="button" class="'.$this->columns[$field]['button_class'].'button_'.$field.'" '.
'onclick="$(this).univ().ajaxec(\''.$this->api->url(null,
array($field=>$this->current_id,$this->name.'_'.$field=>$this->current_id)).'\')">'.
(isset($this->columns[$field]['icon'])?$this->columns[$field]['icon']:'').
$this->columns[$field]['descr'].'</button>';
}else{$this->current_row_html[$field]='';}
$product->destroy();
}
它就像一个普通按钮,但只有在我的产品允许时才会创建按钮。
然后在我的网格中:
$grid->setModel('Model_Product')->addCondition('buyer_id','=',$userID);
$grid->addColumn('smartButton' ,'1');
$grid->addColumn('smartButton' ,'2');
$grid->addColumn('smartButton' ,'3');
$grid->addColumn('smartButton' ,'4');
$grid->addColumn('smartButton' ,'5');
$grid->addPaginator(5);
它并不完美,但现在它会好的!如果您有更好的建议,我会很乐意改进它。