File download not appearing in pop-up dialog kendo window

3 posts, 0 answers
  1. Silver Lightning
    Silver Lightning avatar
    44 posts
    Member since:
    Feb 2014

    Posted 05 Aug 2014 Link to this post

    Hi to all,

    Great day...

    I would like to ask or is this a bug on kendow window or may be there's something missing on my code.
    I'm trying to download a different types of file (.zip, pdf. xlsx, docx, etc).
    But when I'm try to click the download link (attachment name link), the data is trying to open on kendo window as garbage.
    This file is a byte data type came from SQL Server database..
    I use this on pop-up dialog kendo window where there's a kendo grid inside of it.

    Here's my code below:

    Razor:
    @(Html.Kendo().Grid(Of SPIMS.ViewModel.ProjectViewModel.StatusAndLockingEntity)() _
                 .Name("gridProjectAttachment") _
                 .Columns(Sub(c)
                                  c.Bound(Function(p) p.ID).Visible(False)
                                  c.Bound(Function(p) p.AttachmentName).Width(300).HtmlAttributes(New With {.class = "gridContentLeft"}).Title("Attachment") _
                                         .ClientTemplate("<a href='javascript:statusAndLocking_DownloadFile(" + "#=ID#" + ")'>" + "#=AttachmentName#" + "</a>")
                                  c.Bound(Function(p) p.FileSize).Width(100).HtmlAttributes(New With {.class = "gridBodyAttribute"}).Title("File Size")
                          End Sub) _
                 .Sortable(Function(sorting) sorting.AllowUnsort(True)) _
                 .Filterable() _
                 .Scrollable() _
                 .HtmlAttributes(New With {.style = "height:200px;width:470px;"}) _
                 .DataSource(Sub(d)
                                     d.Ajax() _
                                     .PageSize(Session(LocalConstant.Ses_GridPageSize)) _
                                     .Model(Sub(model) model.Id(Function(p) p.ID)) _
                                     .Events(Sub(e)
                                                     e.Error("grid_error_handler")
                                             End Sub) _
                                     .ServerOperation(False) _
                                     .Read(Function(read) read.Action("ProjectAttachment_Read", "StatusAndLocking"))
                             End Sub) _
             .Pageable(Function(pageable) pageable _
             .Refresh(True) _
             .PageSizes(True) _
             .ButtonCount(Session(LocalConstant.Ses_GridButtonCount))))

    Here's the javascript code:

    function statusAndLocking_DownloadFile(projectAttachmentID) {
           var windowAttachment = "#windowAttachment";
           debugger;
           $(windowAttachment).kendoWindow();
           var dialog = $(windowAttachment).data("kendoWindow");
           dialog.refresh(
               {
                   url: "/StatusAndLocking/GetFileByProjectAttachmentID",
                   data: { id: projectAttachmentID }
               });
       }


    Here's the controller:

    'Download File
      Function GetFileByProjectAttachmentID(ByVal id As Integer) As FileContentResult
          Dim _repoProject As New ProjectRepository
          Dim _projectAttachment As New ProjectViewModel.StatusAndLockingEntity
          Dim fileData As Byte() = Nothing
          Dim fileName As String = String.Empty
     
          _projectAttachment = _repoProject.StatusAndLocking_GetFileByProjectAttachmentID(id)
     
          If _projectAttachment IsNot Nothing Then
              fileData = _projectAttachment.SystemFile
              fileName = _projectAttachment.AttachmentName
     
     
          End If
     
          Return File(fileData, System.Net.Mime.MediaTypeNames.Application.Octet, fileName)
      End Function


    Thank you in advance for your kind help.
  2. Silver Lightning
    Silver Lightning avatar
    44 posts
    Member since:
    Feb 2014

    Posted 06 Aug 2014 in reply to Silver Lightning Link to this post

    no reply?
  3. Kendo UI is VS 2017 Ready
  4. Silver Lightning
    Silver Lightning avatar
    44 posts
    Member since:
    Feb 2014

    Posted 06 Aug 2014 Link to this post

    I solved it, I just changed my javascript function.

    function statusAndLocking_DownloadFile(projectAttachmentID) {
            var finUrl = "/StatusAndLocking/GetFileByProjectAttachmentID/" + projectAttachmentID;
            var win = window.open(finUrl);
            win.focus();
        }
Back to Top