を使用してPDFファイルをエクスポートしています
RadGrid1.MasterTableView.ExportToPdf()
これはサブです。私の質問は:エクスポートされたファイルパスをどうにかして取得できますか?
前もって感謝します、
LajosÁrpád。
エクスポートすると、NeedDataSourceイベントが発生します。データを単純なADO.NETDatatableに保存します。
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();
}