메신저 jqGrid의 레코드에서 이미지를 표시하려하지만 작동하지 않습니다.jqGrid 데이터베이스에서 행의 이미지 표시
내 jqGrid의 모든 레코드에는 ID가 있습니다. 내 데이터베이스 테이블에서 이미지를 가져 오기 위해 나는 ID에 데이터베이스 테이블에 저장된 파일 (이미지)을 반환하는 ActionResult를 작성했습니다.
모든 레코드는 고유 ID를 가지고 있기 때문에 jq가 포맷터에 포매팅 된 실제 레코드의 실제 ID를 저장해야하는 내 페이지에 숨겨진 필드가 있습니다.
파이어 버그로 코드를 살펴볼 때 숨겨진 필드가있는 방식이 작동하지 않는 것 같습니다.
어쩌면 아이디어가 있습니까?
<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