如何在 MVC 的 Kendo 网格弹出模板中获取图像?

问题描述 投票:0回答:1

我正在使用 Kendo 网格弹出模板,我试图在模板中获取图像名称和路径,但没有成功。

这是我的索引视图:

@(Html.Kendo().Grid<TelerikMvcAppCombo.Models.ImageModel>()
    .Name("grdImageModel")
    .DataSource(datasource => datasource
        .Ajax()
        .Model(model => model.Id(p => p.IMAGESIZE_ID))
        .Create(create => create.Action("Create", "Imagetest"))
        .Update(update => update.Action("Editing_Update", "Imagetest"))
        .Destroy(delete => delete.Action("Delete", "Imagetest"))
        .Read(read => read.Action("GetData", "Imagetest"))
        .Model(model =>
        {
            model.Field(p => p.IMAGESIZE_ID).Editable(true);
            model.Id(p => p.IMAGESIZE_ID);
            model.Field(p => p.IMAGESIZE_ID).Editable(false);
            // model.Field(p => p.isenabled).DefaultValue(true);
        })
    )
    .Columns(columns =>
    {
        //columns.Bound(c => c.IMAGESIZE_ID).ClientTemplate("<input type='checkbox' value #=IMAGESIZE_ID#  />").Width(50);
        columns.Bound(c => c.IMAGESIZE_ID).ClientTemplate("<input type='checkbox' value #=IMAGESIZE_ID#  />").Title("Image No");
        columns.Bound(c => c.IMAGESIZE_NAME).Width(140).Title("Image Name");
        columns.Bound(c => c.IMAGESIZE_DESC).ClientTemplate("<img src='" + Url.Content("~/Images/") + "#=IMAGESIZE_NAME#'/>").Title("Image");
        columns.Bound(c => c.created_by).Title("Created By");
        columns.Bound(c => c.created_date).Title("Created Date");
        columns.Bound(c => c.modified_by).Title("Modified By");
        columns.Bound(c => c.modified_date).Title("Modified Date");
        columns.Command(command =>
            {
                command.Edit(); command.Destroy();
            });
    })
    .ToolBar(toolbar => toolbar.Create())
    .Editable(editable => editable.Mode(GridEditMode.PopUp).TemplateName("ImageModel"))
    .HtmlAttributes(new { style = "height: 580px;" })
    .Scrollable()
    .Sortable()
    .Pageable(pageable => pageable
        .Refresh(true)
        .PageSizes(true)
        .ButtonCount(5)
    )
)

这是我的编辑器模板:

<div>
    @(Html.Kendo().Upload()
        .Name("files")
        .Multiple(false)
        .Messages(msg => msg.Select("Browser"))
        .Events(e => e
        .Select("onSelect").Remove("onRemove"))
    )
    <div style="height:150px;width:150px;" id="divimage"></div>
</div>

这是我的控制器:

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Create([DataSourceRequest] DataSourceRequest request, IEnumerable<HttpPostedFileBase> files)
{
    return View("");
}

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Editing_Update([DataSourceRequest] DataSourceRequest request, string imagename, string imagepath)
{
    return RedirectToAction("index");
}

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Delete([DataSourceRequest] DataSourceRequest request, ImageModel imagemodel)
{
    return View();
}

public JsonResult GetData([DataSourceRequest] DataSourceRequest request)
{
    var list = db.imageModels.ToList();
    return Json(list.ToDataSourceResult(request));
}

如果我把kendo上传控件作为一个单独的控件使用,那么我很容易得到图片路径和名称。但是如果我在网格弹出窗口中使用剑道上传,那么我就看不到图像了。

asp.net-mvc asp.net-mvc-4 kendo-ui kendo-grid kendo-asp.net-mvc
1个回答
0
投票

我假设您的上传控件是更大表单的一部分。尝试在

.ToClientTemplate()
 上添加 
Html.Kendo().Upload()

希望我能正确理解你的问题。

© www.soinside.com 2019 - 2024. All rights reserved.