2009-05-31 13 views
3

フレキシグリッドを使用してページ単位のデータを表示しています。今私はすべての行( "編集"、 "ビュー"、 "削除")へのリンクを追加する必要があり、正直なところ私はそれを進める方法がない。私が箱からすぐに使えるものはありますか?フレキシグリッド - リンク付きカラムの追加

基本的な考え方は、これらの3つのリンクに小さなアイコンが付いた追加の列を持ち、上部にツールバーがないようにすることです。

アイデア?

答えて

5

私はそれを考え出した:)

をトリックは、単にスクリプトによって返されたデータに直接リンクを置くことであるんです。たとえばこれは、問題のリンクを含む最初の列と行を作成します。

List<Object> rows = new List<Object>(); 
foreach (var item in results) { 
rows.Add(new { 
    id = item.ID, 
    cell = new string[] { 
     String.Format("<a href='/Account/View/{0}'>view</a>&nbsp;<a href='/Account/Edit/{0}'>edit</a>", item.ID), 
     item.Name, 
     item.Phone 
    } 
} 
var result = new { page = page, total = rowcount, rows = rows }; 
return Json(result); 
2

私はグリッドのデータを構築し、「プレゼンター」は、マークアップを注入するという事実を好きではなかったです。 "onSuccess"イベントで実行されるこの小さな拡張を追加しました。 デフォルトの列表現をリンクに変換します。 Railsのために

(function ($) { 
    $.fn.flexLinkColumn = function (colIndex, url) { 
     if (colIndex === undefined || url === undefined) 
      throw "flexLinkColumn requires colIndex and url"; 

     if ($(this).closest('div.flexigrid').length === 0) 
      throw "flexiLinkColumn only operates on flexilink grids."; 

     $(this).find('tr').each(function (index, tr) { 
      var rowId = $(tr).attr('id'); 
      var itemId = rowId.substring(3); 
      var itemUrl = url + (itemId ? "/" + itemId : ""); 

      var div = $(tr).find('td').eq(colIndex).find('div'); 
      var text = $(div).text(); 
      $(div).html('<a href="' + itemUrl + '">' + text + '</a>'); 
     }); 
    } 
})(jQuery); 
-1

return_data[:rows] = @countries.collect{|l| { :id => l.id, :cell=>[ 
'%a :href=>'javascript:void(0);'#{l.client_cont_person}', // normal html link 

l.completed_on,l.created_by,l.project_id,l.status 
]}} 
以下のように追加します。
関連する問題