Hi All
I have problem with ajax manager :
JavaScript:
I used this function to allow me download a file from gridview
function onRequestStart(sender, args) {
if (args.get_eventTarget().indexOf("imgDownload") >= 0)
args.set_enableAjax(false);
}
}
My Ajax Manager:
<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>
My GridView Where I The button for download exist:
<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>
CodeBehind:
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 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
Downloading file working well , but anything else stoped like filtering gridview, sorting gridview and etc (look like ajax post back stoped)
how can I force ajax manager working again after downloading file (after calling onRequestStart)
Please Help me
Thank in advance
What I have tried:
1- postback=true
2-
function onRequestStart(sender, args) {
if (args.get_eventTarget().indexOf("imgDownload") >= 0)
args.set_enableAjax(false);
}
args.set_enableAjax(true);
}