eyadmn73 Ответов: 0

Проблема с 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);
}

0 Ответов