У меня есть сетка Кендо, первый столбец - гиперссылка. Каждая гиперссылка привязана к имени файла PDF. Файл PDF будет находиться в папке проекта.MVC Kendo Grid Ссылка на действие
Сетка:
File Name Date
----------------|--------
file1.pdf |12.03.2014
file2.pdf |13.03.2014
Теперь вэнь я щелкаю по ссылке «file1.pdf» Я хочу это имя файла передается в модель. Также эта ссылка действия должна иметь действие «GetPdf», которое вернет PDFResult. Как только эта ссылка будет нажата, соответствующий файл pdf должен быть открыт на одной странице в теге <object>
. так же, если я нажму вторую ссылку, тогда file2.pdf следует открыть внутри тега объекта с помощью outpostback. Как это достичь? вот мой код. Мой Вид:
@(Html.Kendo().Grid<Myproject.Models.PdffilesModel>()
.Name("grid")
.Columns(columns =>
{
columns.Bound(p => p.FileName)
.ClientTemplate(
"<a href='" +
@Html.ActionLink("#=FileName#'", "GetPdf", "Home")+
"/#= FileName #" +
"</a>");
columns.Bound(c => c.CreatedDate).Width(70);
})
.HtmlAttributes(new { style = "height: 350px;" })
.Scrollable()
.Groupable()
.Sortable()
.Pageable(pageable => pageable
.Refresh(true)
.PageSizes(true)
.ButtonCount(1))
.DataSource(dataSource => dataSource
.Ajax()
.ServerOperation(false)
.Read(read => read.Action("Customers_Read", "Home"))
)
)
HomeController: // здесь я жёстко имя файла, но оно должно исходить от гиперссылок действия мыши
public FileStreamResult GetPdf(string filenmae)
{
FileStream fs = new FileStream("/pdfSample.pdf", FileMode.Open, FileAccess.Read);
return File(fs, "application/pdf");
}
Datasource связать сетку:
public ActionResult Customers_Read([DataSourceRequest]DataSourceRequest request)
{
return Json(GetAttachments().ToDataSourceResult(request));
}
private static IEnumerable<PdffilesModel>GetAttachments()
{
IEnumerable<PdffilesModel> finalresult ;
List<PdffilesModel> list= new List<PdffilesModel>();
var northwind = new PdffilesModel();
northwind.FileName = "file1.pdf";
northwind.CreatedDate = new DateTime(2014,03,04).ToString("d");
list.Add(northwind);
finalresult = list;
return finalresult;
}
Это тег объекта должен связываться с результатом pdf при нажатии ссылки на действие сетки.
<object class="pdfdiv" id="ajaxpdf" data="@Url.Action("GetPdf")"></object>