我正在使用jQuery DataTables Editable来编辑表格中的数据。 (使用jQuery 1.7.2)数据从Asp.net Web服务获取。 (见下面的代码)
当值为空时(例如,如果列表中的一个项目没有类别),我不希望该特定项目的类别可编辑。因此该项目的类别应为只读。我没有办法做到这一点,这可能吗?
<table id="admin_list" cellpadding="0" cellspacing="0" border="0">
<thead>
<tr>
<th>Title</th>
<th>Category</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
<script type="text/javascript">
$(document).ready(function () {
function renderTable(result) {
var dtData = [];
$.each(result, function () {
dtData.push([
this.title,
this.category
]);
});
$('#admin_list').dataTable({
'aaData': dtData
}).makeEditable({
sReadOnlyCellClass: "read_only",
sUpdateURL:"Service.svc/update",
"aoColumns":
[
{}, //title
{} //category
]
});
}
$.ajax({
type: "GET",
url: "Service.svc/list",
dataType: "json", cache: false, data: {}, contentType: "application/json; charset=utf-8",
success: function (data) {
renderTable(data.d);
},
error: function (data) {}
});
});
</script>
答案 0 :(得分:1)
是的,有一个解决方案。我还提供了example。
function renderTable(result) {
var dtData = [];
$.each(result, function () {
dtData.push([
this.title,
this.category ? this.category : " "
]);
});
$('#admin_list').dataTable({
'aaData': dtData
}).makeEditable();
}
$.ajax({
type: "GET",
url: "Service.svc/list",
dataType: "json", cache: false, data: {}, contentType: "application/json; charset=utf-8",
success: function (data) {
renderTable(data.d);
},
error: function (data) {}
});
$("#admin_list tr").live("mousedown", function() {
console.log($(this).find("td:eq(1)").text());
if (/^(?:\s+|Click to edit)?$/.test($(this).find("td:eq(1)").text())) {
$(this)
.find("td:eq(1)")
.empty()
.unbind();
}
});