2009-05-31 6 views
3

Ich verwende Flexigrid, um paginierte Daten anzuzeigen, und es funktioniert sehr gut. Jetzt muss ich Links zu allen Zeilen hinzufügen ("edit", "view", "delete") und ehrlich gesagt habe ich keine Ahnung, wie ich damit weitermachen soll. Gibt es etwas, das ich direkt aus der Box verwenden könnte?Flexigrid - Hinzufügen einer Spalte mit Links

Die Grundidee besteht darin, eine zusätzliche Spalte mit kleinen Symbolen für diese 3 Links zu haben und die Symbolleiste nicht oben zu haben.

Irgendwelche Ideen?

Antwort

5

Ich habe es :)

heraus Der Trick ist einfach, um den Link direkt in den Daten, die von Skript zurückgegeben zu setzen. Zum Beispiel wird dies eine Reihe mit der ersten Spalte enthält die Links in Frage erstellen:

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

habe Ich mag die Tatsache nicht, dass der „Moderator“, die die Daten des Grid baut spritzt Markup. Ich habe diese kleine Erweiterung hinzugefügt, die beim Ereignis "onSuccess" ausgeführt wird. Die Standardspaltenrepräsentation wird in eine Verknüpfung umgewandelt.

(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

Für Rails:

wie hinzufügen 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 
]}} 
Verwandte Themen