I have a functional RadGrid with an RadUpload control in the editTemplate. I am also using a RadAjaxManager in which the Grid references itself. For some reason, the LoadingPanel doesn't display (even though I have set the panel in the RadAjaxManager). The loading panel worked fine until I added in the upload control and javascript conditionalPostback code. I've even tried adding a button and label to print some text and although it ajaxifies it still doesn't display the loader (and it's not because of the image).
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="gridupload.aspx.cs" Inherits="admin_gridupload" %> |
<%@ Register assembly="Telerik.Web.UI" namespace="Telerik.Web.UI" tagprefix="telerik" %> |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
<html xmlns="http://www.w3.org/1999/xhtml"> |
<head id="Head1" runat="server"> |
<title></title> |
</head> |
<body> |
<form id="form1" runat="server"> |
<telerik:radscriptblock id="RadScriptBlock1" runat="server"> |
<script type="text/javascript"> |
//On insert and update buttons click temporarily disables ajax to perform upload actions |
function conditionalPostback(e, sender) { |
var theRegexp = new RegExp("\.UpdateButton$|\.PerformInsertButton$", "ig"); |
if (sender.EventTarget.match(theRegexp)) { |
var upload = $find(window['UploadId']); |
//AJAX is disabled only if file is selected for upload |
if (upload.getFileInputs()[0].value != "") { |
sender.EnableAjax = false; |
} |
} |
} |
</script> |
</telerik:radscriptblock> |
<telerik:RadAjaxManager ID="AjaxManager1" runat="server"> |
<ClientEvents OnRequestStart="conditionalPostback"/> |
<AjaxSettings> |
<telerik:AjaxSetting AjaxControlID="RadGrid1"> |
<UpdatedControls > |
<telerik:AjaxUpdatedControl ControlID="RadGrid1" LoadingPanelID="RadAjaxLoadingPanel1" /> |
</UpdatedControls> |
</telerik:AjaxSetting> |
</AjaxSettings> |
</telerik:RadAjaxManager> |
<div> |
<telerik:RadProgressManager ID="RadProgressManager1" Runat="server" /> |
<telerik:RadProgressArea ID="RadProgressArea1" Runat="server"> |
</telerik:RadProgressArea> |
<telerik:RadGrid ID="RadGrid1" runat="server" DataSourceID="odsVideo" |
GridLines="None" AutoGenerateColumns="False" |
oninsertcommand="RadGrid1_InsertCommand"> |
<MasterTableView |
CommandItemDisplay="Top" |
DataKeyNames="VideoID" |
EditMode="EditForms" |
DataSourceID="odsVideo"> |
<EditItemTemplate> |
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> |
</EditItemTemplate> |
<RowIndicatorColumn> |
<HeaderStyle Width="20px"></HeaderStyle> |
</RowIndicatorColumn> |
<ExpandCollapseColumn> |
<HeaderStyle Width="20px"></HeaderStyle> |
</ExpandCollapseColumn> |
<Columns> |
<telerik:GridEditCommandColumn> |
</telerik:GridEditCommandColumn> |
<telerik:GridBoundColumn DataField="VideoID" DataType="System.Int32" |
HeaderText="VideoID" ReadOnly="True" SortExpression="VideoID" |
UniqueName="VideoID"> |
</telerik:GridBoundColumn> |
<telerik:GridTemplateColumn DataField="Title" HeaderText="Title" |
SortExpression="Title" UniqueName="Title"> |
<EditItemTemplate> |
<asp:TextBox ID="txtTitle" runat="server" Text='<%# Bind("Title") %>'></asp:TextBox> |
</EditItemTemplate> |
<ItemTemplate> |
<asp:Label ID="TitleLabel" runat="server" Text='<%# Eval("Title") %>'></asp:Label> |
</ItemTemplate> |
</telerik:GridTemplateColumn> |
<telerik:GridTemplateColumn DataField="FileName" DataType="System.Guid" |
HeaderText="FileName" SortExpression="FileName" UniqueName="FileName"> |
<EditItemTemplate> |
<telerik:RadUpload ID="RadUpload1" Runat="server"> |
</telerik:RadUpload> |
</EditItemTemplate> |
<ItemTemplate> |
<asp:Label ID="FileNameLabel" runat="server" Text='<%# Eval("FileName") %>'></asp:Label> |
</ItemTemplate> |
</telerik:GridTemplateColumn> |
<telerik:GridBoundColumn DataField="Minutes" DataType="System.Int32" |
HeaderText="Minutes" SortExpression="Minutes" UniqueName="Minutes"> |
</telerik:GridBoundColumn> |
<telerik:GridBoundColumn DataField="Seconds" DataType="System.Int32" |
HeaderText="Seconds" SortExpression="Seconds" UniqueName="Seconds"> |
</telerik:GridBoundColumn> |
<telerik:GridBoundColumn DataField="DateAdded" DataType="System.DateTime" |
HeaderText="DateAdded" SortExpression="DateAdded" UniqueName="DateAdded"> |
</telerik:GridBoundColumn> |
<telerik:GridBoundColumn DataField="SeriesID" DataType="System.Int32" |
HeaderText="SeriesID" SortExpression="SeriesID" UniqueName="SeriesID" |
Visible="False"> |
</telerik:GridBoundColumn> |
<telerik:GridBoundColumn DataField="Ranking" DataType="System.Int32" |
HeaderText="Ranking" SortExpression="Ranking" UniqueName="Ranking" |
Visible="False"> |
</telerik:GridBoundColumn> |
<telerik:GridCheckBoxColumn DataField="IsActive" DataType="System.Boolean" |
HeaderText="IsActive" SortExpression="IsActive" UniqueName="IsActive"> |
</telerik:GridCheckBoxColumn> |
</Columns> |
<EditFormSettings> |
<EditColumn UniqueName="EditCommandColumn1"></EditColumn> |
</EditFormSettings> |
</MasterTableView> |
</telerik:RadGrid> |
</div> |
<asp:ObjectDataSource ID="odsVideo" runat="server" |
DataObjectTypeName="MySample.BusinessObjects.Video" |
DeleteMethod="Delete" InsertMethod="Insert" |
OldValuesParameterFormatString="original_{0}" SelectMethod="GetItems" |
TypeName="MySample.BusinessLogic.VideoManager" |
UpdateMethod="Update"> |
<DeleteParameters> |
<asp:Parameter Name="videoID" Type="Int32" /> |
</DeleteParameters> |
</asp:ObjectDataSource> |
<telerik:RadScriptManager ID="RadScriptManager1" Runat="server"> |
</telerik:RadScriptManager> |
<br /> |
<br /> |
<telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server" Height="16px" |
Transparency="50" Width="16px"> |
<img alt="Loading..." src='<%= RadAjaxLoadingPanel.GetWebResourceUrl(Page, "Telerik.Web.UI.Skins.Default.Ajax.loading.gif") %>' |
style="border: 0px;" /> |
</telerik:RadAjaxLoadingPanel> |
</form> |
</body> |
</html> |