Flexigrid - 添加包含链接的列

时间:2009-05-31 12:10:39

标签: jquery flexigrid

我正在使用Flexigrid来显示分页数据,而且效果非常好。现在我需要添加所有行的链接(“编辑”,“查看”,“删除”),老实说,我不知道如何继续它。是否有我可以立即使用的东西?

基本思路是为这3个链接添加一个带有小图标的附加列,而不是将工具栏放在顶部。

有什么想法吗?

3 个答案:

答案 0 :(得分: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);

答案 1 :(得分: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);

答案 2 :(得分:-1)

对于Rails:

添加如下

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
]}}