如何获取导出文件的路径(telerik RadGrid导出)?

时间:2012-08-10 13:51:05

标签: asp.net telerik export radgrid

我正在使用

导出PDF文件
RadGrid1.MasterTableView.ExportToPdf()

这是一个子。我的问题是:我能以某种方式得到导出的文件路径吗?

提前谢谢你,

LajosÁrpád。

1 个答案:

答案 0 :(得分:1)

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

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

您可以更改&#34; RadGrid.pdf&#34;无论你想要什么叫它。

最后一个按钮让所有这一切发生(或者你可以随时调用ExportToPdf函数。

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