Enable/disable 根据每一行的特定列的值编辑单元格
Enable/disable cell editing based on a particular column's value for each row
我有一个 jquery editable 数据table,所有列都是 editable。我想 enable/disable 基于特定单元格值的单元格编辑。例如,在下面的 table 中,如果操作系统值为 "Windows",则将列 "FileExtension" 设置为非 editable,如果操作系统值为 "Unix",则将列 "Language" 作为非 editable 。
--------------------------------------------------
| OperatingSystem FileExtenstion Language |
--------------------------------------------------
| Windows non-editable editable |
| Unix editable non-editable |
| Windows non-editable editable |
--------------------------------------------------
Table 正在通过 Ajax 来源动态填充。
$(document).ready(function () {
$("#dbResultsTable").dataTable({
"bServerSide": true,
"sAjaxSource": "/EditableTables/TableEditAjaxRequest",
"bProcessing": true,
"sPaginationType": "full_numbers",
"bJQueryUI": false,
"scrollX" : true,
"aoColumns": [
{ "sName": "OperatingSystem",
},
{
"sName": "FileExtenstion",
},
{
"sName": "Language",
}
]
}).makeEditable({
"aoColumns": [
{
cssclass: "required"
},
{
cssclass: "required"
},
{
cssclass: "required"
}
]
}
);
});
可能吗?
好的,我找到了一种方法,我希望它能帮助别人。
$("#dbResultsTable tr").live("mousedown", function() {
if ($(this).find("td:eq(0)").text()=="Windows") {
$(this).find("td:eq(1)").empty().unbind();
} else if($(this).find("td:eq(0)").text()=="Unix"){
$(this).find("td:eq(2)").empty().unbind();
}
});
注意:- 但如果您的单元有一些数据并且您已使用上述功能清除+禁用它,则这不会在服务器端更新数据。您必须拨打 ajax 电话并更新手机数据。
如果有更好的方法,请告诉我,我洗耳恭听。
我有一个 jquery editable 数据table,所有列都是 editable。我想 enable/disable 基于特定单元格值的单元格编辑。例如,在下面的 table 中,如果操作系统值为 "Windows",则将列 "FileExtension" 设置为非 editable,如果操作系统值为 "Unix",则将列 "Language" 作为非 editable 。
--------------------------------------------------
| OperatingSystem FileExtenstion Language |
--------------------------------------------------
| Windows non-editable editable |
| Unix editable non-editable |
| Windows non-editable editable |
--------------------------------------------------
Table 正在通过 Ajax 来源动态填充。
$(document).ready(function () {
$("#dbResultsTable").dataTable({
"bServerSide": true,
"sAjaxSource": "/EditableTables/TableEditAjaxRequest",
"bProcessing": true,
"sPaginationType": "full_numbers",
"bJQueryUI": false,
"scrollX" : true,
"aoColumns": [
{ "sName": "OperatingSystem",
},
{
"sName": "FileExtenstion",
},
{
"sName": "Language",
}
]
}).makeEditable({
"aoColumns": [
{
cssclass: "required"
},
{
cssclass: "required"
},
{
cssclass: "required"
}
]
}
);
});
可能吗?
好的,我找到了一种方法,我希望它能帮助别人。
$("#dbResultsTable tr").live("mousedown", function() {
if ($(this).find("td:eq(0)").text()=="Windows") {
$(this).find("td:eq(1)").empty().unbind();
} else if($(this).find("td:eq(0)").text()=="Unix"){
$(this).find("td:eq(2)").empty().unbind();
}
});
注意:- 但如果您的单元有一些数据并且您已使用上述功能清除+禁用它,则这不会在服务器端更新数据。您必须拨打 ajax 电话并更新手机数据。
如果有更好的方法,请告诉我,我洗耳恭听。