jQuery easyui 结合ThinkPHP使用,关于读取数据显示问题

ansen125 2014-06-09 06:55:57
原来项目写了一个EasyUI类,里面写了一个datagrig()方法
public function _datagrid($tag) {
$id = !empty($tag['id']) ? $tag['id'] : strtolower(CONTROLLER_NAME.'_'.ACTION_NAME.'_datagrid');
$style = !empty($tag['style']) ? $tag['style'] : '';
//默认参数
$dataOptions = array(
'border' => false,
'fit' => true,
'fitColumns' => true,
'rownumbers' => true,
'singleSelect' => true,
'pagination' => true,
'pageList' => array(20,30,50,80,100),
'pageSize' => cookie('pagesize') ? cookie('pagesize') : C('DATAGRID_PAGE_SIZE'),
);
$options = $tag['options'] ? $this->autoBuildVar($tag['options']) : 'array()';
$fields = $tag['fields'] ? $this->autoBuildVar($tag['fields']) : 'null';

$parseStr = '<table id="'. $id .'" class="easyui-datagrid" data-options=\'<?php $dataOptions = array_merge('. var_export($dataOptions, true). ', '. $options .');if(isset($dataOptions[\'toolbar\']) && substr($dataOptions[\'toolbar\'],0,1) != \'#\'): unset($dataOptions[\'toolbar\']); endif; echo trim(json_encode($dataOptions), \'{}[]\').((isset('. $options .'[\'toolbar\']) && substr('. $options .'[\'toolbar\'],0,1) != \'#\')?\',"toolbar":\'.'. $options .'[\'toolbar\']:null); ?>\' style="'. $style .'"><thead><tr>';
$parseStr .= '<?php if(is_array('. $fields .')):foreach ('. $fields .' as $key=>$arr):if(isset($arr[\'formatter\'])):unset($arr[\'formatter\']);endif;echo "<th data-options=\'".trim(json_encode($arr), \'{}[]\').(isset('. $fields .'[$key][\'formatter\'])?",\"formatter\":".'. $fields .'[$key][\'formatter\']:null)."\'>".$key."</th>";endforeach;endif; ?>';
$parseStr .= '</tr></thead></table>';

return $parseStr;
}
控制器里是这样写的逻辑
$datagrid = array(
'options' => array(
'title' => $currentpos,
'url' => U('Uc/pages', array('grid'=>'datagrid')),
'toolbar' => 'uc_pages_datagrid_toolbar',
),
'fields' => array(
'page' => array('field'=>'page','width'=>15,'sortable'=>true),
'Access' => array('field'=>'private','width'=>15,'sortable'=>true),
'管理操作' => array('field'=>'id','width'=>15,'formatter'=>'ucPagesOperateFormatter'),
)
);


$this->assign('datagrid', $datagrid);
页面是这样引用标签的,数据就出来了
<taglib name="Admin\TagLib\EasyUI" />

<easyui:datagrid options="datagrid.options" fields="datagrid.fields" />

现在的问题是,这是操作的pages表,里面有字段id ,page ,private,private的值是0或者1,控制器里利用field=》‘private'将0或者1显示到了页面上,但是我们的要求是当数据库privat字段值是0时页面显示public,是1时,页面显示private。不改变表的内容,结构,也就是不动表,怎样操作才能实现呢?请大家帮我看看,谢谢!
...全文
156 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
孤空恋群 2014-06-09
  • 打赏
  • 举报
回复
呃,会easyUI,不会php
恰似驚鴻 2014-06-09
  • 打赏
  • 举报
回复
ansen125 2014-06-09
  • 打赏
  • 举报
回复
你们谁回复下啊,我好给你们分啊,我给不了自己分啊,不然分全浪费了!
ansen125 2014-06-09
  • 打赏
  • 举报
回复
ansen125 2014-06-09
  • 打赏
  • 举报
回复
我头脑一热,忽然发现,利用跟管理操作那一列的方式显示就能实现,呵呵,解决了! 我在pages页面里定义了一个格式化函数ucPagesAccessFormatter() //Access格式化 function ucPagesAccessFormatter(val){ var btn=[]; if(val==0){ return "public"; }else{ return "private"; } } 在控制器里写成: 'fields' => array( 'page' => array('field'=>'page','width'=>15,'sortable'=>true), 'Access' => array('field'=>'private','width'=>15,'formatter'=>'ucPagesAccessFormatter'), '管理操作' => array('field'=>'id','width'=>15,'formatter'=>'ucPagesOperateFormatter'), ) 结果页面就显示出来了:

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧