onRequestStart функция JavaScript, ошибка при загрузке PDF-файла в Radgrid Ajaxifying
У меня есть Radgrid с парой ImageButton. При нажатии на кнопку "Загрузить изображение" мне нужно открыть диалоговое окно для сохранения или открытия файла. Поскольку я использую RadAjaxManager, он не открывает диалоговое окно, хотя проходит через код. Я пытаюсь использовать приведенный ниже код, чтобы избежать изменения при нажатии кнопки "Загрузить". Я не мог понять, как передать значение args в функцию Javascript для отключения ajax. это бросая ошибку, говоря, что "аргументы" не определены.
<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server" ClientEvents-OnRequestStart="onRequestStart()">
<AjaxSettings>
<telerik:AjaxSetting AjaxControlID="btnUpdateUsers">
<UpdatedControls>
<telerik:AjaxUpdatedControl ControlID="radGrid1" LoadingPanelID="RadAjaxLoadingPanel1"></telerik:AjaxUpdatedControl>
</UpdatedControls>
</telerik:AjaxSetting>
</AjaxSettings>
</telerik:RadAjaxManager>
<telerik:RadAjaxLoadingPanel runat="server" ID="RadAjaxLoadingPanel1" Skin="Default"></telerik:RadAjaxLoadingPanel>
<telerik:RadGrid ID="radGrid1" RenderMode="Lightweight" runat="server"
AllowPaging="true" AllowSorting="True" AutoGenerateColumns="false"
OnItemCommand="radGrid1_ItemCommand"
OnItemDataBound="radGrid1_ItemDataBound"
OnNeedDataSource="radGrid1_NeedDataSource" PageSize="20"
ShowFooter="true">
<MasterTableView AllowAutomaticDeletes="false" AllowAutomaticInserts="false"
AllowAutomaticUpdates="false" AllowFilteringByColumn="true"
CommandItemDisplay="Top" DataKeyNames="ID">
<Columns>
<telerik:GridBoundColumn DataField="ID" DataType="System.Guid"
HeaderText="Name" ReadOnly="true" Visible="false" />
<telerik:GridButtonColumn ButtonType="ImageButton"
CommandName="download_file" HeaderText="Download PDF"
ImageUrl="~/Images/download.png" ItemStyle-HorizontalAlign="Center"
Text="Download" UniqueName="Download">
</telerik:GridButtonColumn>
</Columns>
</MasterTableView>
</telerik:RadGrid>
**aspx.cs file**
protected void radGrid1_ItemCommand(object sender, GridCommandEventArgs e)
{
if (e.CommandName == "download_file")
{
GridDataItem ditem = (GridDataItem)e.Item;
ImageButton imgBtn = (ImageButton)ditem["Download"].Controls[0];
int index = e.Item.ItemIndex;
imgBtn.Attributes.Add("onclick", "OnRequestStart('" + e.Item.ItemIndex + "');");
Response.Clear();
Response.ClearHeaders();
Response.AddHeader("Content-Type", "Application/octet-stream");
Response.AddHeader("Content-Length", d.PDF.Length.ToString());
Response.AddHeader("Content-Disposition", "attachment; filename=" + string.Format("file_{0}_{1}.PDF", d.User.DisplayName, d.Year));
Response.BinaryWrite(d.PDF);
if (Response.IsClientConnected)
{
Response.Flush();
}
Response.End();
}
}
**Javascript**
function onRequestStart(index)
{
var grid = $find("<%=radGrid1.ClientID %>");
var masterTable = grid.get_masterTableView();
var rows = masterTable.get_dataItems();
var indexnew = rows[index];
if (args.get_eventTarget().indexOf(indexnew) >= 0)
args.set_enableAjax(false);
}