模型
public function getTopStatusList()
{
return ['2'=>'政策法规','3'=>'信息公开','4'=>'办事指南'];
}
映射到前端
<div class="panel-heading">
<ul class="nav nav-tabs" data-field="top_id">
<li class="{:$Think.get.top_id === null ? 'active' : ''}"><a href=" " data-value="" data-toggle="tab">{:__('All')}</a></li>
{foreach name="TopStatus" item="vo"}
<li class="{:$Think.get.top_id === (string)$key ? 'active' : ''}"><a href="#t-{$key}" data-value="{$key}" data-toggle="tab">{$vo}</a></li>
{/foreach}
</ul>
</div>
实例
HTML
字段为:category_id
<div class="panel-heading">
{:build_heading(null,FALSE)}
<ul class="nav nav-tabs" data-field="category_id">
<li class="{:$Think.get.category_id === null ? 'active' : ''}"><a href="#t-all" data-value="" data-toggle="tab">{:__('All')}</a></li>
{foreach name="category" item="vo"}
<li class="{:$Think.get.category_id === (string)$vo['id'] ? 'active' : ''}"><a href="#t-{$vo['id']}" data-value="{$vo['id']}" data-toggle="tab">{$vo['name']}</a></li>
{/foreach}
</ul>
</div>
JS
// 绑定TAB事件
$('.panel-heading [data-field] a[data-toggle="tab"]', table.closest(".panel-intro")).on('shown.bs.tab', function (e) {
var field = $(this).closest("[data-field]").data("field");//从这里可以看出 在view层的html里面,你设置的data-field字段
var value = $(this).data("value");
var object = $("[name='" + field + "']", table.closest(".bootstrap-table").find(".commonsearch-table"));
//这里fa处理的方式是把所设置的字段和值传入到commonsearch里面,也就是点击表格左上角那个搜索的放大镜弹出的那个通用搜索,就等同于你在commonsearch里面填充了字段值,执行了通用搜索。(看起来是这样哈,如果不是,请指正)
if (object.prop('tagName') == "SELECT") {
$("option[value='" + value + "']", object).prop("selected", true);
} else {
object.val(value);
}
table.trigger("uncheckbox");
table.bootstrapTable('refresh', {pageNumber: 1});
return false;
});
注意 JS文件中必须存在需要渲染的字段
如我渲染category_id
这个字段 我js列表中必须存在
{field: 'category_id', title: __('分类'),visible:false},