2017-07-29 3 views
0

私のDataTableの1つの列はLogeion Linkと呼ばれます。各レコードのURLを表示しますが、このURLはデフォルトではアクティブではありません。これを簡単に修正する方法はありますか?DataTableの各行にリンクを含む列をアクティブにすると、列も短くなりますか?

その他の問題は....完全なURLを表示すると、列が非常に長くなります。私は列のテキストを "url"と言うだけで、logeionのURLへのハイパーリンクとなる文字列で変更しても構いません。どうやってそれをやり始めますか?

DataTablesの行と特定のDataTablesの列のhtmlを編集する方法が見つかったら、私は1つの石で2羽の鳥を打つことができると仮定して、 "この特定の列(Logeion Link )、そのhtmlに<a>タグを付けて、上記<a>タグのテキストを変更してください。

これはちょうど...私はどのセレクタまたはコールバックが各行のhtmlを変更できるかは不明です。

編集:私のDataTableオブジェクトを初期化するためのコードはここにある

列は列のリストは、列の名前が "特別ときに私はdeeectしようとした

   columns.push({ 
       "name" : $(this).data("fieldname"), 
       "data" : "fields."+$(this).data("fieldname"), 
       "visible" : $(this).data("visible") 
     }); 

オブジェクトである

 words_table = $("#words_generated").DataTable({ 
    "data" : word_data_filtered, 
    "columns" : columns,  //should this be global_ocolumns 
    "aLengthMenu": [[25, 50, 100, 200, -1], 
      [25, 50, 100, 250, "All"]], 
    "pageLength": 100, 
}); 

logeion_url "(これは.data(" fieldname ")属性で動作します)が、構文エラーが発生しました。

   if ($(this).data("fieldname") == "logeion_url") { 
      columns.push({ 
       "name": $(this).data("fieldname"), 
       "data" : "fields.logeion_url", 
       "fnCreatedCell": function (nTd, sData, oData, iRow, iCol) { 
     $(nTd).html("<a href="+sData.fields.logeion_url+">"url"</a>"); 
        } 
       , 
       "visible" : $(this).data("visible") 
     }); 

私はそうそう、答えはレンダリングを使用することで、このフォーラムの提案 https://www.datatables.net/forums/discussion/25111/hyperlink-in-td

+1

を使用してください。ここにリンクをレンダリングする例がありますhttps://datatables.net/reference/option/columns.render –

+0

あなたは正しいです!コードをコピーして貼り付けます。 –

答えて

0

のオフに行くようにしようとしていました。私のコードを投稿するつもりですが、かなりの量はJavaScriptファイル全体の背景知識に依存しています。しかし、少なくとも誰かが混乱した場合に備えて、私が構文的に私を引きつけていたことについて話をするつもりです。

私は、URL列がいつ初期化されているかを識別するための条件を作成しました。レンダリング:部分を除いて、他のすべての列のように初期化しました。

   if ($(this).data("fieldname") == "logeion_url") { 
      console.log("CREATING LOGEION URL COLUMN"); 
      columns.push({ 
       "name": $(this).data("fieldname"), 
       "data" : fields.logeion_url, 
       "render" : function (data, type, full, meta) { 
       return '<a href="'+fields.logeion_url+'">Link</a>'; 
       }, 
       "visible" : $(this).data("visible") 
      }); 
     } 
  • 私はまだ「データが」私はもともとfields.logeion_urlと同じ値に設定するデータを期待していたので、何を意味するのか完全にはわからないんだけど、return文が'<a href="'+data+'">Link</a>' を読んでこれはにつながりました未定義のURLが作成されています。 fields.logeion_url 間違いなくには各レコードのURLが含まれているため、これが機能しました。
関連する問題