2012-01-17 37 views
11

我添加如下因素線到我的MasterTableView:與出口radgrid控件Telerik的問題練成

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

但是當我點擊的是,加載DIV對電網被刷新,沒有什麼事情發生出現,然後數據。沒有「保存文件」窗口。

我錯過了什麼?

回答

6

它引起AJAX(已知問題基本頁面需要返回流而不是用於AJAX的XttpRequest),因此在這個回傳中需要取消AJAX。 你可以找到更多的信息here和下載幾個示例項目,顯示出口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> 

但是我還是建議你閱讀所附link

2

添加一個按鈕導出爲ex​​cel;

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

RUNAT = 「服務器」>

在後面的代碼方:

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

+0

同樣的結果,不工作,因爲它應該。有一刻加載div並刷新網格。沒有samve文件窗口 – gruber 2012-01-17 07:25:53

16

話題網格之前添加以下代碼:

<script type="text/javascript"> 
     function onRequestStart(sender, args) 
     { 
      if (args.get_eventTarget().indexOf("ExportToExcelButton") >= 0 || 
        args.get_eventTarget().indexOf("ExportToWordButton") >= 0 || 
        args.get_eventTarget().indexOf("ExportToCsvButton") >= 0) 
      { 
       args.set_enableAjax(false); 
      } 
     } 
    </script> 

    <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server"> 
     <ClientEvents OnRequestStart="onRequestStart" /> 
     <AjaxSettings> 
      <telerik:AjaxSetting AjaxControlID="RadGrid1"> 
       <UpdatedControls> 
        <telerik:AjaxUpdatedControl ControlID="RadGrid1" /> 
       </UpdatedControls> 
      </telerik:AjaxSetting> 
     </AjaxSettings> 
    </telerik:RadAjaxManager> 

對於後面的代碼添加以下之一:

protected void RadGrid1_ItemCommand(object sender, Telerik.Web.UI.GridCommandEventArgs e) 
{ 
    if (e.CommandName == Telerik.Web.UI.RadGrid.ExportToExcelCommandName || 
      e.CommandName == Telerik.Web.UI.RadGrid.ExportToWordCommandName || 
      e.CommandName == Telerik.Web.UI.RadGrid.ExportToPdfCommandName || 
      e.CommandName == Telerik.Web.UI.RadGrid.ExportToCsvCommandName) 
    { 
     gridResult.ExportSettings.IgnorePaging = true; 
     gridResult.ExportSettings.OpenInNewWindow = true; 
     if (e.CommandName == Telerik.Web.UI.RadGrid.ExportToExcelCommandName) 
      gridResult.MasterTableView.ExportToExcel(); 
     else if (e.CommandName == Telerik.Web.UI.RadGrid.ExportToWordCommandName) 
      gridResult.MasterTableView.ExportToWord(); 
     else if (e.CommandName == Telerik.Web.UI.RadGrid.ExportToCsvCommandName) 
      gridResult.MasterTableView.ExportToCSV(); 
     else if (e.CommandName == Telerik.Web.UI.RadGrid.ExportToPdfCommandName) 
      gridResult.MasterTableView.ExportToPdf(); 

    } 
} 

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

+0

讓我知道使用後的輸出。 – Niran 2012-08-06 07:01:03

3

我不喜歡這樣寫道:

我們有電網下一個按鈕:

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

而且在調用ExportToExcel onclick句柄,然後清除響應頭

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(因此我只導出所有數據)。

完美的作品!

2

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