文件下载无效

时间:2014-12-09 09:39:23

标签: asp.net vb.net telerik

我在分层网格( Telerik RadGrid )中有一个名为Download的链接按钮。我计划在该链接按钮的点击事件中下载该文件。在我在页面中放置更新面板之前,一切正常。即使页面包含更新面板,我该如何下载word文件。以下是我正在使用的代码:

在项目命令

 If e.CommandName = "lnkdwnload" Then
    objdbconn.ExecuteNonQuerySQL(msSql)
    Response.ContentType = "application/msword"
    Response.AppendHeader("Content-Disposition", "attachment; filename=" & myfile.Name)
    Response.AppendHeader("Content-Length", myfile.Length.ToString())
    Response.WriteFile(myfile.FullName)
    Response.End()
 End If
Item DataBound中的

  If e.Item.ItemType = GridItemType.Item Or e.Item.ItemType = GridItemType.AlternatingItem Then
     If e.Item.OwnerTableView.Name = "contactentry" Then
        Dim lnk As LinkButton = Nothing
        lnk = DirectCast(e.Item.FindControl("lnkdwnload"), LinkButton)
        If lnk IsNot Nothing Then
           ScriptManager.GetCurrent(Me).RegisterPostBackControl(lnk)
        End If
     End If
   End If

1 个答案:

答案 0 :(得分:0)

简短的回答是 - 你不能

MS AJAX需要一组非常严格的规则来应用于响应,并且发送文件会更改整个响应,包括标题,因此浏览器无法解析它。

你能做的是:

  • 通过客户端代码(如果您使用RadAjax)禁用这些链接的AJAX,如下所示:http://www.telerik.com/help/aspnet-ajax/grid-export-with-ajax-enabled.html

  • 将链接的NavigateUrl设置为可以克隆的自定义处理程序,它将获取文件,因此它们不会导致回发,而是导航浏览器框架。您可以添加查询字符串参数,以指示处理程序要返回的文件