3

Flexigrid を使用してページ分割されたデータを表示していますが、非常にうまく機能します。ここで、すべての行 (「編集」、「表示」、「削除」) にリンクを追加する必要がありますが、正直なところ、それを続行する方法がわかりません。箱から出してすぐに使えるものはありますか?

基本的な考え方は、これら 3 つのリンクの小さなアイコンを含む列を追加し、上部にツールバーを配置しないことです。

何か案は?

4

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);
于 2009-05-31T12:29:10.423 に答える
2

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

(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);
于 2011-11-13T17:38:16.470 に答える
-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
]}}
于 2013-07-22T10:20:51.743 に答える