web-dev-qa-db-ja.com

エクセルへのエクスポートに関するRadGridtelerikの問題

MasterTableViewに次の行を追加しました。

<CommandItemSettings ShowExportToWordButton="true" ShowExportToExcelButton="true" ShowExportToCsvButton="true" />

しかし、それをクリックすると、読み込み中のdivが表示され、グリッド上のデータが更新され、他に何も起こりません。 「ファイルの保存」ウィンドウはありません。

私は何かが足りませんか?

11
gruber

AJAX(基本的に、ページはAJAXに使用されるXttpReuestではなくストリームを返す必要があります)によって引き起こされる既知の問題です。したがって、これでAJAXをキャンセルする必要があります)ポストバック。詳細情報を見つけることができます ここ そしてradgridをエクスポートするさまざまな方法を示すいくつかのサンプルプロジェクトをダウンロードしてください。

PS。 「すぐに使える解決策」は、これをJSコードに追加することです。

<script type="text/javascript">
            function mngRequestStarted(ajaxManager, eventArgs)
           {
              if(eventArgs.EventTarget == "mngBtnExcel" || eventArgs.EventTarget == "mngBtnWord")
             {
                eventArgs.EnableAjax = false;
             }
           }
            function pnlRequestStarted(ajaxPanel, eventArgs)
           {
              if(eventArgs.EventTarget == "pnlBtnExcel" || eventArgs.EventTarget == "pnlBtnWord")
             {
                eventArgs.EnableAjax = false;
             }
           }
            function gridRequestStart(grid, eventArgs)
           {
              if((eventArgs.EventTarget.indexOf("gridBtnExcel") != -1) || (eventArgs.EventTarget.indexOf("gridBtnWord") != -1))
             {
                eventArgs.EnableAjax = false;
             }
           }
</script>

ただし、添付のトピックを読むことをお勧めします リンク

7
SimSimY

私はこのようにします:

グリッドの下にボタンがあります。

<asp:Button ID="cmdExportToExcel" runat="server"
        Text="Export to Excel" OnClick="cmdExportToExcel_OnClick" />

また、OnClickハンドラーで、ExportToExcelを呼び出してから、応答ヘッダーをクリアします。

protected void cmdExportToExcel_OnClick(object sender, EventArgs e) {
     radGrid.MasterTableView.ExportToExcel();
     Page.Response.ClearHeaders();
     Page.Response.ClearContent();
}

グリッドには、いくつかのExportSettingsがあります。
ExportSettings.ExportOnlyData = true、ExportSettings.FileNameを現在のデータを含む一意の名前に設定し、IgnorePagingもtrueに設定しました(したがって、すべてのデータをエクスポートするだけです)。

完璧に動作します!

3
Erik Dekker

Excelにエクスポートするためのボタンを追加します。

<asp:Button ID="Button1" CssClass="button" Width="150px" Text="Export to Excel" OnClick="Button1_Click"

runat = "server">

サイドの裏側のコード:

protected void Button1_Click(object sender, System.EventArgs e)
    {
        ConfigureExport();
        RadGrid1.MasterTableView.ExportToExcel();
    }

public void ConfigureExport()
    {
        RadGrid1.ExportSettings.ExportOnlyData = true;
        RadGrid1.ExportSettings.IgnorePaging = true;
        RadGrid1.ExportSettings.OpenInNewWindow = true;
    }

参照: http://demos.telerik.com/aspnet-ajax/grid/examples/generalfeatures/exporting/defaultcs.aspx

2
Pankaj Tiwari

ClientEvents-OnRequestStart = "requestStart"をRadAjaxPanelに追加します

<telerik:RadAjaxPanel ID="RadAjaxPanel1" runat="server" 
    ClientEvents-OnRequestStart="requestStart">

スクリプトを追加します

<script type="text/javascript">
        function requestStart(sender, args)
        {
            if (args.get_eventTarget().indexOf("ExportToExcelButton") >= 0)
            {
                args.set_enableAjax(false);
            }
        }
    </script>
2
ihebiheb