2016-05-30 10 views
1

私はdatatable Jqueryを使用しており、サーバからデータを読み出すためのajax呼び出しを行っています。 データベースに3つの属性 "Attribute1、Attribute2、Status"があるとします。 ステータスに応じて、データテーブルの3番目の列を有効または無効にする必要があります。サーバからのデータに基づいてHtmlボタンを有効/無効にする

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 
      } 
    }); 

上記のコードで、サーバーから読み取られた各行にボタンを追加できます。それでは、どのようにして各レコード "Status"の3番目の属性に基づいてそれを有効または無効にするにはどうしたらいいですか?データの

タイプ:

Object { columns: Array[3], data: Array[2] } 

データ:

[{"column1":"1","Column2":"abc","Status":"Yes"},{"column1":"2","Column2":"xyz","Status":"No"}] 

どれリードをいただければ幸いです。 私はjQueryとJavaScriptのに新しいです

おかげ

答えて

1

データ内のステータスの値を確認し、それに従ってaaDataにボタンを設定します。あなたのコード内

追加1行:

field_dic [ "ボタン"] =(json_obj.columns [i]が[ "状態"] == "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>"; 
    } 
} 
+0

'console.log(json_obj.columns [i] [" Status "]);'はコンソールに未定義を記録します。 – user3214392

+0

?? ...私はちょうどあなたがステータスを読み取って、それに基づいてdatatableの行のhtmlを設定する方法の例を与えました。正確な回答が必要な場合は、処理しているデータの構造を共有してください。それ以外の場合は、ステータス欄にアクセスしてロジックにアクセスしてください。 – abhinsit

+0

質問にデータのタイプ/構造が追加されました – user3214392

関連する問題