【问题标题】:How can I get the path of exported file (telerik RadGrid exporting)?如何获取导出文件的路径(telerik RadGrid 导出)?
【发布时间】:2012-08-10 13:51:05
【问题描述】:

我正在使用导出 PDF 文件

RadGrid1.MasterTableView.ExportToPdf()

这是一个潜艇。我的问题是:我能以某种方式获取导出的文件路径吗?

提前谢谢你,

拉霍斯阿尔帕德。

【问题讨论】:

  • 您是否希望能够以某种方式获取客户端选择将文件保存到的文件路径?
  • 要么(但我认为这是不可能的),要么将 pdf 文件存储在服务器上,但我不知道如何设置网格以将导出的 pdf 存储在服务器上。

标签: asp.net telerik export radgrid


【解决方案1】:

导出时,NeedDataSource 事件将触发。将数据存储到一个简单的 ADO.NET 数据表中。

protected void RadGrid1_NeedDataSource(object sender, GridNeedDataSourceEventArgs e)
    {
        DataTable table = new DataTable();
        table.Columns.Add("Col1", typeof(double));
        for (int i = 0; i < 2; i++)
            table.Rows.Add(i);

        (sender as RadGrid).DataSource = table;
    }

不言自明。删除文本框,只留下文本。

public void ReplaceTextBoxes(Control ctrl)
{
    var q = new Stack<Control>(ctrl.Controls.OfType<Control>());
    while (q.Count > 0)
    {
        Control control = q.Pop();
        if (control is ITextControl)
        {
            ctrl.Controls.Add(new LiteralControl((control as ITextControl).Text));
            ctrl.Controls.Remove(control);
        }
        if (control.HasControls())
            ReplaceTextBoxes(control);
    }
}

要存储在服务器上,请添加 OnGridExporting 事件。

protected void RadGrid1_GridExporting(object sender, GridExportingArgs e)
{
    using (FileStream fs = File.Create(Request.PhysicalApplicationPath + "RadGrid.pdf"))
    {
        byte[] output = Encoding.GetEncoding(1252).GetBytes(e.ExportOutput);
        fs.Write(output, 0, output.Length);
    }

    Response.Redirect(Request.Url.ToString());
}

您可以将“RadGrid.pdf”更改为您想要的任何名称。

最后是一个按钮来实现这一切(或者您可以在任何地方调用 ExportToPdf 函数。

protected void Button1_Click(object sender, EventArgs e)
{
    foreach (GridDataItem item in RadGrid1.MasterTableView.Items)
        ReplaceTextBoxes(item);
    RadGrid1.MasterTableView.ExportToPdf();
}

【讨论】:

  • 感谢您的回答。我正在尝试。
  • 创建 PDF,但 PDF 为空。
  • 别再更新了,我假设你已经有了剩下的代码
  • 感谢您的更新,我已经为您投票了,因为您希望提供帮助。我有一个 NeedDatasource 事件,我成功地将数据导出为客户端的 PDF。但它在服务器端不起作用,这是主要问题。我也有一个 GridExporting 事件,但是当我想导出到服务器时它不会触发。当我想导出到客户端时它会触发。我不明白出了什么问题。
  • 我终于完成了,在服务器端成功导出文件后,我在使用RegisterStartupScript打开RadWindow时仍然遇到问题,但这是一个不同的问题。感谢您的帮助。
猜你喜欢
  • 2012-06-16
  • 1970-01-01
  • 2014-02-22
  • 2019-05-14
  • 1970-01-01
  • 2012-02-12
  • 2023-04-05
  • 2014-02-18
  • 1970-01-01
相关资源
最近更新 更多