Frage

Ich bin mit Flexigrid paginierte Daten angezeigt werden und es funktioniert sehr gut. Jetzt muss ich Links hinzufügen auf alle Zeilen ( „Bearbeiten“, „Ansicht“, „löschen“) und ehrlich gesagt habe ich keine Ahnung, wie sie damit fortfahren. Gibt es etwas, das ich direkt aus der Box verwenden könnte?

Die Grundidee ist für die drei Links eine zusätzliche Spalte mit kleinen Symbolen haben und nicht an der Spitze die Symbolleiste zu haben.

Irgendwelche Ideen?

War es hilfreich?

Lösung

Ich habe es herausgefunden:)

Der Trick ist, einfach den Link zu setzen direkt in den von Skript zurückgegebenen Daten. Zum Beispiel wird dies eine Reihe mit der ersten Spalte erstellen die betreffenden Links enthalten:

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

Andere Tipps

Ich wusste nicht, wie die Tatsache, dass die „Moderator“, die die Daten des Grid baut spritzt Markup. Ich habe diese kleine Erweiterung, die auf dem „onSuccess“ -Ereignis ausgeführt wird. Es wandelt die Standard-Spaltendarstellung in eine Verbindung.

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

Für Rails:

Fügen Sie wie unter

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
]}}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top