layui表格中实时获取下拉框数据
1.首先需要定义一个table。
<div id="id_table">
<table id="xxx" lay-filter=""></table>
</div>
2.渲染数据
layui.use(['form', 'laydate', 'table', 'layer'], function () {
var table = layui.table, form = layui.form, layer = layui.layer, laydate=layui.laydate;
var cols_ = get_cols();
var tb_opts = {
id: "xxx"
, elem: "#xxx"
, toolbar: "#xxx"
, defaultToolbar: []
, canSelectRow: 'false'
//LAY_CHECKED: true,
, autowidth: 'true'
, height: '265'
, even: true
, cols: [cols_]
, url: ""
, data: data
, text: {
none: gettext("none_data")
}
, loading: true
, page: {
layout: ['limit', 'count', 'prev', 'page', 'next']
, groups: 3
, limit: 50
, limits: [50, 100,]
}
, done: function (obj) {
get_code(obj);
}
};
gettext:为i18n。
cols:为表格显示数据。
下边代码就不再演示,主要说明下,加载下拉框数据。
3.编写cols,table显示数据,get_cols方法为我定义的获取方法。
function get_cols() {
var cols;
var cols_2 = [];
cols_2.push(
{field: 'select_code', title: "xxxx", type: 'select', width: 160, align: 'center',templet:"#selectDictName"},
);
cols = cols.concat(cols_2);
return cols;
}
selectDictName为templet自定义模板方法。
4.编写selectDictName方法。
写一段单独的js
<script type="text/html" id="selectDictName">
<select name="dictName" lay-filter="dictName" data-value="{{d.dictName}}">
</select>
</script>
作用,table生成下拉框。
5.获取下拉框数据,这是一个方法,需要将方法写在done下,当前我的获取数据的方法为get_code()
function get_code(obj) {
// 渲染dictName列
// 渲染之前组装select的option选项值
$("select[name='dictName']").html(dictNameOptions);
$('#id_table tr').each(function (e) {
var $cr = $(this);
var data_index = $cr.attr("data-index");
$.each(obj.data, function (index,value) {
if (value.LAY_TABLE_INDEX == data_index){
$cr.find('select').val(value.select_code);
}
});
});
form.render('select');
}
此处已做回显操作。
6.根据上述代码,我们可以知道select监禁一个dictNameOptions的方法,这个就是我们获取数据的方法。
需要另写一点js
<script type="text/javascript">
var dictNameOptions = "<option value=''>--------</option>\n";
$.ajax({
async: false,
url: 'xxxx/xxx/xx',
type: 'get',
success: function (res) {
for (i in res.data) {
dictNameOptions += '<option value= "' +res.data[i].id + '">' + res.data[i].alias + '</option>';
}
}
})
</script>
这样我们layui就在table中时间实时获取下拉框数据。
希望可以帮到你。谢谢观看。