我有以下问题:
我想有条件地显示datatable中的一列。特别是kt数据表中的actions列。(Laravel的Metronic主题有自己的Datatables实现,它基于jQuery Datatables。)我一直在看专栏。渲染方法,但我不能完全理解它。理想情况下,我希望根据与datatable的html一起传递的数据属性显示一列。
HTML:
<div id="datatable-example" data-isadmin="{{ auth()->user()->hasRole(['superadmin', 'admin']) }}"></div>
js/jquery:
example_datatable = example_element.DataTable({
search: {
input: $('#generalSearch'),
},
rows: {
...
},
columns: [
...,
{
field: 'actions',
title: sendings_element.data('column-actions'),
class: 'w8',
textAlign: 'right',
sortable: false,
template: function (row) {
if (sendings_element.data('user_roles')) {
return '<a class="btn btn-danger" href="' + sendings_element.data('route-edit-sending').replace('__id__', row.id) + '">' + sendings_element.data('text_edit') + '</a>';
} else {
return '<a class="btn btn-danger" href="' + sendings_element.data('route-view-sending').replace('__id__', row.id) + '">' + sendings_element.data('text_view') + '</a>';
}
}
},
],
});
我真的很感激你的帮助。
更新:
我找到了一个可行的解决方案:
<div id="datatable-id"
...
data-isadmin="{{ auth()->user()->hasRole('super-admin') ? "true" : "false" }}"
></div>
在我的javascript中:
kb_datatable = kb_element.customDataTableThatExtendsKTDatatable({
...
columns: [
...
{
field: 'description',
title: kb_element.data('column-description'),
width: 600,
template: function(row) {
if(kb_element.data('isadmin')){
kb_datatable.column(1).visible(false);
}
},
},
...
},
],
});
我还不满意这个解决方案,因为我正在使用一个行模板来隐藏列。但它现在起作用了。
@remul:是的,我正在使用KT-Datable,我不确定报告这个问题的同事是否在他的代码中。好接球!我刚刚设置了一个测试用例,使用一个自定义的数据可扩展ktdatable。我已经接受了你的答案作为解决方案,因为你给我指出了正确的方向,但问题是可见属性期望一个真或假,因此在html代码中缩短。理想情况下,我想为列的回调函数,但我能找到的唯一有点像它的是模板方法。此外,如果我在列对象中的可见属性上使用缩写的结果,我遇到了一个奇怪的错误,我需要将其他列设置为空,并且不能为其他列设置其他属性。使用带目标和可见的哥伦布是另一种解决方案,但我也不能做到这一点。
将可见
属性添加到操作列应该可以做到这一点,但是当使用stateSave
时,只要有一个可数据对象的保存状态,更改data-属性就不会有任何效果。为了避免这种情况,您可以从状态中删除可见性,除非在这里提到:
如果您不想保存列可见性,您可以从状态对象中的对象列数组中删除可见参数:
stateSaveParams: function ( settings, data ) {
for ( var i=0, ien=data.columns.length ; i<ien ; i++ ) {
delete data.columns[i].visible;
}
}
所以在你的情况下:
columns: [
{
field: 'actions',
visible: !!example_element.data('isadmin')
// your other attributes
},
],
stateSaveParams: function ( settings, data ) {
for ( var i=0, ien=data.columns.length ; i<ien ; i++ ) {
delete data.columns[i].visible;
}
}
因此,我试图编写一个油腻的脚本,并希望基于同一树中的span值来切换一个特定的div类。这将绑定到一个按钮操作。 我想出的最好的办法是... $('span[data-doc=“true”]').parent().parent().parent().parent().parent().parent().parent().parent().toggle(); 为了向上到达树并隐藏我想要的div类,我
data.table,我们可以根据行号或条件选择行: 但是,我不能同时选择行数和条件: 这可能是因为在这种格式下没有被解释为行号。我知道我可以链接这两个条件: 但是我想为这个子集分配新的列值 现在,它只为中间链接的 data.table 创建了列。我可以保存中间表,然后合并回原始表,但那会很麻烦。 实际上,我经常觉得 需要一个正确的行号。一个依赖于组的动态数字,但我想要一个可以识别每一行的唯一ID
问题内容: 我正在为指令模板。如果范围内的属性设置为true,则应将其附加到元素。如果变量为false,则此数据属性不应呈现为元素的属性。 例如,如果scope变量为true,则模板应呈现: 如果为false,则模板应呈现: 模板将如何完成此任务? 例如,我知道可以用来有条件地包含一个类。如果我希望模板呈现此内容: 然后我的模板如下所示: 如果scope变量为,则模板将简单地呈现: 因此,模板中有
我想知道是否有任何方法可以隐藏或禁用用户向Google Map Maker提供的自行车道/步道? 我的网站有一个骑行区,当你将地图从Google Earth切换到Google Maps时,会显示大量错误/不准确的地图制作数据。http://www.trailforks.com/riding_areas/cumberland 数据在Map maker上可见。http://goo.gl/Ebnq4 我
这是我的HTML PHP表格页面的全部代码。。 我遇到的问题是,如果列和行(字段)为空, 当数据为空时,我想隐藏列和行字段。
我浏览了很多帖子,但没有抓住要点。 我们能不能说:抽象=封装数据隐藏 或者不止这些!! 谢谢