我正在使用数据表Jquery并进行ajax调用以从服务器读取数据。 假设数据库有3个属性" Attribute1,Attribute2,Status"。 根据状态,应启用或禁用数据表上的第三列按钮。
function test(server_url,table_id){
.ajax({url: server_url,dataType:"html",success: function(result){
var json_obj=JSON.parse(result);
var Columns="<thead><tr>";
var Fields=[],Tool_columns=[];
UserGroupFields=json_obj.columns;
for(i=0;i<json_obj.columns.length;i++){
Columns+="<th>"+json_obj.columns[i]+"</th>";
var field_dic={};
var tool_dic={};
field_dic["label"]=json_obj.columns[i];
field_dic["name"]=json_obj.columns[i];
Fields[i]=field_dic;
Tool_columns[i]=tool_dic;
}
tool_dic["targets"]=-1;
tool_dic["data"]="null";
tool_dic["defaultContent"]="<button this.disabled=true'>Yes</button>";
myTable=('#'+table_id).DataTable({
"order":[[0,"desc"]],
aaData:json_obj.data,
dom: 'T<"clear">lfrtip',
columns:Tool_columns,
tableTools: {
sRowSelect: 'single',
"sRowSelector": "td:not(:last-child)",
"aButtons": [ {
"sExtends": "editButton",
"sButtonText": "Edit",
"target": "#"+table_id
}]
},
"search": {
"regex": true,
"smart": false
}
});
通过上面的代码,我可以为从服务器读取的每一行添加一个按钮。那么我现在如何根据每条记录的第三个属性启用或禁用它#34;状态&#34;。
数据类型:
Object { columns: Array[3], data: Array[2] }
数据:
[{"column1":"1","Column2":"abc","Status":"Yes"},{"column1":"2","Column2":"xyz","Status":"No"}]
任何线索都会受到赞赏。 我是JQuery和JavaScripts的新手
由于
答案 0 :(得分:1)
检查数据中的状态值,并相应地在aaData中设置按钮。
在代码中添加了一行:
field_dic [“button”] =(json_obj.columns [i] [“status”] ==“LIVE”)?“按钮文字”:“按钮文字”;
for(i=0;i<json_obj.columns.length;i++){
Columns+="<th>"+json_obj.columns[i]+"</th>";
var field_dic={};
var tool_dic={};
field_dic["label"]=json_obj.columns[i];
field_dic["name"]=json_obj.columns[i];
field_dic["button"]=(json_obj.columns[i]["status"]=="LIVE")?"<button disabled='disabled'>Button Text</button>":"<button>Button Text</button>";
Fields[i]=field_dic;
Tool_columns[i]=tool_dic;
}
循环读取“状态”值并相应地设置值。
for(i=0;i<json_obj.data.length;i++){
if(json_obj.data[i]["Status"]=="Yes"){
json_obj.data[i]["Status"]="<button disabled='disabled'>Button Text</button>";
}
else{
json_obj.data[i]["Status"]="<button>Button Text</button>";
}
}