Проблема с ajaxmanager и загрузкой файла
Всем Привет
У меня проблема с менеджером ajax :
язык JavaScript:
Я использовал эту функцию, чтобы загрузить файл из gridview
function onRequestStart(sender, args) { if (args.get_eventTarget().indexOf("imgDownload") >= 0) args.set_enableAjax(false); } }
Мой Менеджер Аякс :
<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server" LoadingPanelID="gridLoadingPanel" ClientEvents-OnRequestStart="onRequestStart"> <AjaxSettings> <telerik:AjaxSetting AjaxControlID="SearchRadButton"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="AttachmentRadGridView" /> <telerik:AjaxUpdatedControl ControlID="AttachmentRecordRadLabel" /> </UpdatedControls> </telerik:AjaxSetting> <telerik:AjaxSetting AjaxControlID="AttachmentRadGridView"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="AttachmentRadGridView" LoadingPanelID="gridLoadingPanel"></telerik:AjaxUpdatedControl> </UpdatedControls> </telerik:AjaxSetting> </AjaxSettings> </telerik:RadAjaxManager>
Мой GridView где я кнопка для загрузки существует:
<telerik:GridTemplateColumn HeaderText="Request Download" ItemStyle-HorizontalAlign="Center"> <ItemTemplate> <asp:ImageButton ID="imgDownload" runat="server" ImageUrl="/images/attachment24.png" CommandName="download_file" Height="22px" Width="22px" ToolTip="Request Download" CommandArgument='<%# Eval("ID") %>' /> </ItemTemplate> </telerik:GridTemplateColumn>
код поддержки:
Protected Sub AttachmentRadGridView_ItemCommand(sender As Object, e As GridCommandEventArgs) Handles AttachmentRadGridView.ItemCommand If e.CommandName = "download_file" Then Dim ditem As GridDataItem = CType(e.Item, GridDataItem) Dim AttachID As Long = CLng(ditem("ID").Text) DownloadFileAttachment(AttachID) End If End Sub Protected Sub DownloadFileAttachment(ByVal FileId As Long) 'Dim id As Integer = Integer.Parse(TryCast(sender, LinkButton).CommandArgument) Dim bytes As Byte() Dim fileName As String, contentType As String Dim constr As String = dbpath Using con As New SqlConnection(constr) Using cmd As New SqlCommand() cmd.CommandText = "select FileName, ImageData, FileType from FileStore where FileId=@FileId" cmd.Parameters.AddWithValue("@FileId", FileId) cmd.Connection = con con.Open() Using sdr As SqlDataReader = cmd.ExecuteReader() sdr.Read() bytes = DirectCast(sdr("ImageData"), Byte()) contentType = sdr("FileType").ToString() fileName = sdr("FileName").ToString() & "." & contentType End Using con.Close() End Using End Using Dim path As String = MapPath("/Download/" & fileName) Response.Clear() Response.Buffer = True Response.Charset = "" Response.Cache.SetCacheability(HttpCacheability.NoCache) Response.ContentType = contentType Response.AppendHeader("Content-Disposition", "attachment; filename=" + fileName) Response.BinaryWrite(bytes) Response.Flush() Response.End() End Sub
Загрузка файла работает хорошо , но все остальное остановлено, например фильтрация gridview, сортировка gridview и т. д. (Похоже, что ajax post back stoped)
как я могу заставить ajax manager снова работать после загрузки файла (после вызова onRequestStart)
Пожалуйста, помогите мне
Спасибо заранее
Что я уже пробовал:
1 - postback=true
2-
function onRequestStart(sender, args) { if (args.get_eventTarget().indexOf("imgDownload") >= 0) args.set_enableAjax(false); } args.set_enableAjax(true); }