2012-01-17 30 views
11

tôi thêm folowing dòng để MasterTableView tôi:vấn đề RadGrid telerik với xuất khẩu vượt trội

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

Nhưng khi tôi nhấp vào đó, tải div xuất hiện và sau đó dữ liệu trên lưới được làm mới và không có gì khác xảy ra. Không có cửa sổ "lưu tệp".

Tôi có thiếu gì không?

Trả lời

6

Nó được vấn đề được biết do AJAX (về cơ bản trang cần trở lại luồng hơn là XttpReuest được sử dụng cho AJAX) do đó tha AJAX cần phải được hủy bỏ sau này. Bạn có thể tìm thêm thông tin here và tải xuống một số dự án mẫu hiển thị nhiều cách khác nhau để xuất radgrid.

PS. Các "giải pháp sẵn sàng" là để thêm video này vào mã JS của bạn

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

Nhưng tôi vẫn khuyên bạn nên đọc các chủ đề trong các đính kèm link

2

Thêm nút để xuất sang excel;

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

runat = "server">

Mở Mã đằng sau Side:

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

tham khảo: http://demos.telerik.com/aspnet-ajax/grid/examples/generalfeatures/exporting/defaultcs.aspx

+0

Các kết quả tương tự, làm việc doesnt như nó phải.Có tải div cho một thời điểm và lưới làm mới. Không có cửa sổ tập tin mẫu nào – gruber

16

Thêm mã dưới đây trước khi Lưới:

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

Đối với các mã sau thêm bên dưới một:

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(); 

    } 
} 

tham khảo: http://demos.telerik.com/aspnet-ajax/grid/examples/generalfeatures/exporting/defaultcs.aspx

+0

Hãy cho tôi biết đầu ra sau khi sử dụng nó .. – Niran

3

tôi làm điều đó như thế này:

Chúng tôi có một nút dưới lưới:

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

Và trong xử lý OnClick bạn gọi ExportToExcel, và sau đó xóa các tiêu đề phản ứng

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

Trên lưới, bạn có một số cài đặt xuất.
Tôi đặt ExportSettings.ExportOnlyData = true, ExportSettings.FileName thành một tên duy nhất với dữ liệu hiện tại và IgnorePaging cũng đúng (Vì vậy, tôi chỉ xuất tất cả dữ liệu).

Hoạt động hoàn hảo!

2

Thêm ClientEvents-OnRequestStart = "requestStart" để RadAjaxPanel

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

của bạn Thêm mã

<script type="text/javascript"> 
     function requestStart(sender, args) 
     { 
      if (args.get_eventTarget().indexOf("ExportToExcelButton") >= 0) 
      { 
       args.set_enableAjax(false); 
      } 
     } 
    </script> 
Các vấn đề liên quan