jqGrid показать изображение в строке из базы данных - PullRequest
1 голос
/ 27 января 2011

Я пытаюсь отобразить изображения из записей в jqGrid, но это не работает.

Каждая запись в моем jqGrid имеет идентификатор.Чтобы получить изображения из моей таблицы базы данных, я написал ActionResult, который возвращает файл (изображение), который хранится в таблице базы данных с идентификатором.

Поскольку каждая запись имеет уникальный идентификатор, у меня есть скрытыйполе на моей странице, где jq должен хранить фактический идентификатор фактической записи, которая форматируется в форматтер.

Когда я просматриваю код с 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");
        }
    }

С уважением, float

1 Ответ

1 голос
/ 27 января 2011

Вы зарегистрировали форматировщик?Я думаю, что вам нужно сделать это, прежде чем загружать сетку.Вот пример:

<script type='text/javascript'>
  $.fn.fmatter.imageFormatter = function(cellvalue, options, rowObject) {
       return "<img src='/Shared/AuftragDBImage?id=" + cellvalue + "'/>";
  }; 
</script>

Обратите внимание, что у вас нет объекта Request.Form в форматере (помните, что вы на клиенте), поэтому используйте обычный URL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...