1

ラドグリッドを使用しています。エクスポート ボタンをクリックすると、Rad Ajax Loading Panel が表示されますが、エクスポート プロセスが完了しても閉じません。

この問題について何か考えはありますか?

4

1 に答える 1

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>

そしてジャバスクリプト

<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>

于 2012-08-23T05:44:26.047 に答える