imはjqGridのレコードからイメージを表示しようとしていますが、動作していません。jqGridイメージをデータベースから表示
私のjqGridのすべてのレコードにはidがあります。私のデータベーステーブルからイメージを取得するために、私はidにデータベーステーブルに格納されているファイル(イメージ)を返すActionResultを書きました。
すべてのレコードに固有のIDがあるため、jqがフォーマッタにフォーマットされた実際のレコードの実際のIDを格納する必要がある、私のページに隠しフィールドがあります。
私はfirebugでコードを調べると、隠されたフィールドとのやり方がうまくいかないようです。
多分あなたはアイデアがありますか?
ここが私のコードです:
<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");
}
}
よろしく、 フロート
jqGridに隠れフィールドが見つかりませんでしたが、「隠しフィールドでの操作がうまくいかないようです」と書いてあります。さらに、カスタムフォーマッタ 'imageFormatter'は奇妙に見えます。他の人があなたのコードを検証できるようにするには、 'Build' coulmnのどの値にサーバからのJSON応答があるのか、カスタムフォーマッタがどのような結果を出すべきかを説明する必要があります。 – Oleg