jqGrid zeigt Bild in der Zeile aus der Datenbank
ich versuche, um die Bilder anzuzeigen von Datensätzen in jqGrid aber es funktioniert nicht.
Jeden Datensatz in meine jqGrid hat eine id. Um die Bilder aus meiner Datenbank-Tabelle, die ich schrieb, ein ActionResult gibt eine Datei (image) gespeichert, die in der Datenbank-Tabelle zu der id.
Weil jeder Datensatz hat eine eindeutige id, ich habe ein hidden Feld in meiner Seite, wo jq speichern sollte die tatsächliche id der aktuellen Platte formatiert der Formatierer.
Wenn ich mir den code mit firebug, es scheint, dass der Weg mit der hidden-Feld nicht funktioniert.
Vielleicht haben Sie eine Idee?
Hier ist mein code:
<input type="hidden" name="cellvalue" value="" />
<script type="text/javascript">
$(function () {
$("#PartialIndexGrid").jqGrid({
url: '/@ViewContext.RouteData.Values["Controller"].ToString()/IndexGridData',
datatype: 'json',
mtype: 'POST',
colNames: ['Details', 'Bearbeiten','Bild', 'Titel', 'Bearbeitungsort', 'Status'],
colModel: [
{ name: 'Details', index: "Details", edittype: 'select', align: "center", width: 45, formatter: 'showlink', formatoptions: { baseLinkUrl: '/Shared/Details/', addParam: ''} },
{ name: 'Bearbeiten', index: "Bearbeiten", edittype: 'select', align: "center", width: 80, formatter: 'showlink', formatoptions: { baseLinkUrl: '/Shared/Edit/', addParam: ''} },
{ name: 'Bild', index: 'Bild', edittype: 'image', formatter: imageFormatter },
{ name: 'Titel', index: 'Titel'},
{ name: 'Bearbeitungsort', index: 'Bearbeitungsort' },
{ name: 'AuftragStatus', index: 'AuftragStatus'}
],
pager: $("#PartialIndexGridpager"),
rowNum: 10,
rowList: [5, 10, 20, 30],
sortname: 'Titel',
sortorder: "asc",
viewrecords: true,
width: 942,
caption: ''
})
});
function imageFormatter(cellvalue, options, rowObject) {
$("cellvalue").val(cellvalue);
return '<img src="@Url.Action("AuftragDBImage", "Shared", new { id = Request.Form["cellvalue"]})" />';
};
public ActionResult AuftragDBImage(Guid id)
{
try
{
var auftrag = _db.Auftrag.Where(x => x.Auftrag_GUID == id).Select(x => x).Single();
return File(auftrag.Bild, "image/jpeg");
}
catch (Exception)
{
return File(pfaddummybild, "image/jpeg");
}
}
Grüße,
float
Ich habe nicht gefunden, einen hidden-Feld in das jqGrid, aber Sie schrieb: "es scheint, dass der Weg mit der hidden-Feld funktioniert nicht". Darüber hinaus die benutzerdefinierte formatter -
imageFormatter
sieht aus wie merkwürdig. Möglich zu machen, andere Menschen zu überprüfen Sie Ihren code, den Sie sollten erklären, welche Werte für Build
coulmn hat die JSON-Antwort vom server und was für Ergebnisse sollten Sie die benutzerdefinierte formatter erzeugen.
InformationsquelleAutor float | 2011-01-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie registriert das Formatierungsprogramm? Ich denke, Sie müssen dies tun, bevor Sie laden Sie das raster. Hier ist ein Beispiel:
Beachten Sie, dass Sie nicht haben, eine Anfrage.Form-Objekt, in dem formatter (denken Sie daran, Sie sind auf dem client), so verwenden Sie die normale url.
Und natürlich gibt es keine Notwendigkeit für die Verwendung eines hidden-Feld, da die cellvalue ist eine Variablen in den Formatierer.
InformationsquelleAutor Xhalent