Javascript 如何在单个datatable列上启用xeditable?
我试图在具有以下结构的datatable上使用Javascript 如何在单个datatable列上启用xeditable?,javascript,jquery-selectors,twitter-bootstrap-3,datatables,x-editable,Javascript,Jquery Selectors,Twitter Bootstrap 3,Datatables,X Editable,我试图在具有以下结构的datatable上使用 <table id="example"> <thead> <tr> <th>ID</th> <th>Type</th> </tr> </thead> <tbody> {% for r in records %}
<table id="example">
<thead>
<tr>
<th>ID</th>
<th>Type</th>
</tr>
</thead>
<tbody>
{% for r in records %}
<tr>
<td><a href="{{ r.link }}">{{ r.id }}</a></td>
<td><a href="#" pk-data="{{ r.id }}" data-type="select" data-value="{{ r.type.id }}">{{ r.type.name }}</a></td>
</tr>
{% endfor %}
</tbody>
</table>
这是行不通的。我的控制台中没有错误。这根本没用。没有弹出窗口,没有内联,什么都没有
我怀疑这是我“example.td a”的结果。我的Javascript已经生锈了,但我相信这应该适用于这两个列,对吗?如何使此选择仅适用于第二列
我期待这样的东西从,特别是选择,本地数组,自定义显示
我提供了一个帮助显示我的问题的方法,一种方法是将class=second\u td添加到第二个元素中,并将选择器更改为“example.second\u td a”
,我说您需要将class=second\u td添加到第二个元素中,而不是添加到第二个td中的标记中。一种方法是将class=second\u td添加到第二个元素中,并将选择器更改为“example.second\u td a”
,我说你需要将class=second\u td添加到你的second中,而不是添加到你的second td中的标记中。我只是想让你知道上面的解决方案很好。。。但是datatables搜索功能中断,因为datatables行信息没有更新我将其添加到上面的FIDLE中,现在在编辑字段后,您可以对新数据进行筛选。有两种方法可以达到预期的效果: 重新创建数据表
$('#example .second_td a').on('save', function(e, params) {
//recreate datatable
$('#example').DataTable().destroy();
$('#example').dataTable({
"aaSorting": [[ 1, "desc" ]],
"lengthMenu": [[50, 250, 500, 1000], [50, 250, 500, 1000]],
"iDisplayLength": 250
});
});
$('#example .second_td a').on('save', function (e, params) {
var $td = $(this).closest('td');
$('#example')
.DataTable()
.cell($td)
.data('<a href="#" pk-data="ABC-123" data-type="select" data-value="' + params.newValue + '" class="editable editable-click">' + $td.find(':selected').text() + '</a>');
});
更新数据表中的单个单元格
$('#example .second_td a').on('save', function(e, params) {
//recreate datatable
$('#example').DataTable().destroy();
$('#example').dataTable({
"aaSorting": [[ 1, "desc" ]],
"lengthMenu": [[50, 250, 500, 1000], [50, 250, 500, 1000]],
"iDisplayLength": 250
});
});
$('#example .second_td a').on('save', function (e, params) {
var $td = $(this).closest('td');
$('#example')
.DataTable()
.cell($td)
.data('<a href="#" pk-data="ABC-123" data-type="select" data-value="' + params.newValue + '" class="editable editable-click">' + $td.find(':selected').text() + '</a>');
});
我只是想让你知道上面的解决方案很好。。。但是datatables搜索功能中断,因为datatables行信息没有更新我将其添加到上面的FIDLE中,现在在编辑字段后,您可以对新数据进行筛选。有两种方法可以达到预期的效果: 重新创建数据表
$('#example .second_td a').on('save', function(e, params) {
//recreate datatable
$('#example').DataTable().destroy();
$('#example').dataTable({
"aaSorting": [[ 1, "desc" ]],
"lengthMenu": [[50, 250, 500, 1000], [50, 250, 500, 1000]],
"iDisplayLength": 250
});
});
$('#example .second_td a').on('save', function (e, params) {
var $td = $(this).closest('td');
$('#example')
.DataTable()
.cell($td)
.data('<a href="#" pk-data="ABC-123" data-type="select" data-value="' + params.newValue + '" class="editable editable-click">' + $td.find(':selected').text() + '</a>');
});
更新数据表中的单个单元格
$('#example .second_td a').on('save', function(e, params) {
//recreate datatable
$('#example').DataTable().destroy();
$('#example').dataTable({
"aaSorting": [[ 1, "desc" ]],
"lengthMenu": [[50, 250, 500, 1000], [50, 250, 500, 1000]],
"iDisplayLength": 250
});
});
$('#example .second_td a').on('save', function (e, params) {
var $td = $(this).closest('td');
$('#example')
.DataTable()
.cell($td)
.data('<a href="#" pk-data="ABC-123" data-type="select" data-value="' + params.newValue + '" class="editable editable-click">' + $td.find(':selected').text() + '</a>');
});
那没有如预期的那样奏效。我已经提供了一个帮助我更好地展示我的问题的方法,但没有达到预期效果。我已经提供了一个帮助更好地展示我的问题。