我正在使用radgrid。当我单击导出按钮时,Rad Ajax加载面板会显示,但在导出过程完成后永远不会关闭。
你对这个问题有什么看法吗?
答案 0 :(得分:1)
您好我找到了我的解决方案:)我删除了AjaxPanel和AjaxLoadingPanel之间的连接。之后我明确地触发了AjaxLoadingPanel。这是我以前的代码。
<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server">
<AjaxSettings>
<telerik:AjaxSetting AjaxControlID="RadGrid1">
<UpdatedControls>
<telerik:AjaxUpdatedControl ControlID="RadAjaxPanel1" LoadingPanelID="RadAjaxLoadingPanel1"/>
</UpdatedControls>
</telerik:AjaxSetting>
<telerik:AjaxSetting AjaxControlID="btnList">
<UpdatedControls>
<telerik:AjaxUpdatedControl ControlID="RadAjaxPanel1" LoadingPanelID="RadAjaxLoadingPanel1"/>
</UpdatedControls>
</telerik:AjaxSetting>
</AjaxSettings>
<ClientEvents OnRequestStart="ResponseEnd" />
</telerik:RadAjaxManager>
和java脚本
<telerik:RadCodeBlock ID="RadCodeBlock1" runat="server">
<script type="text/javascript">
var currentLoadingPanel = null;
var currentUpdatedControl = null;
function ResponseEnd(sender, args) {
//hide the loading panel and clean up the global variables
if (args.get_eventTarget().indexOf("ExportToExcelButton") >= 0 ||
args.get_eventTarget().indexOf("ExportToPdfButton") >= 0 ||
args.get_eventTarget().indexOf("ExportToCsvButton") >= 0) {
args.set_enableAjax(false);
}
currentLoadingPanel = $find("<%= RadAjaxLoadingPanel1.ClientID %>");
if (args.get_eventTarget() == "<%= btnList.UniqueID %>") {
currentUpdatedControl = "<%= RadAjaxPanel1.ClientID %>";
}
else {
currentUpdatedControl = "<%= RadAjaxPanel1.ClientID %>";
}
if (currentLoadingPanel != null)
currentLoadingPanel.hide(currentUpdatedControl);
currentUpdatedControl = null;
currentLoadingPanel = null;
}
</script>