gpt4 book ai didi

excel - ComponentArt:导出网格数据

转载 作者:行者123 更新时间:2023-12-04 22:10:59 26 4
gpt4 key购买 nike

我需要将 ComponentArt Grid 中的内容导出到文件中,最好是 csv 格式的 excel。

我想知道是否有人知道如何最好地完成这项任务。目前,我们已经用数据填充了网格,并且使用客户端模板在向用户显示之前正在执行一些小的操作。

应用的模板示例如下:

<ComponentArt:ClientTemplate Id="PostTemplate">
## DataItem.GetMember("LastPostBy").Value ##<br />## DataItem.GetMember("LastPostDate").Value ##
</ComponentArt:ClientTemplate>

Where the column definitions are:

<ComponentArt:GridColumn Width="140" HeadingText="Last Post By " DataCellClientTemplateId="PostTemplate" />
<ComponentArt:GridColumn DataField="LastPostBy" Visible="false" />
<ComponentArt:GridColumn DataField="LastPostDate" Visible="false" />

因此,当导出网格时,我希望文件包含导出时网格中的内容,包括任何可能可见的模板化更改。

预先感谢您的协助。

最佳答案

您不能直接使用 RenderControl 将 Web.UI Grid 导出到文本编写器中。相反,您应该将其数据转换为另一种形式(例如 ASP DataGrid)并导出。

这背后的原因是 Web.UI Grid 的结构是在客户端上动态构建的——它作为一组 XML 和数组数据从服务器传递到客户端,然后转换为您在窗口中看到的表格和 div。

因此,您需要在 Grid 的数据源上执行导出,然后分析客户端模板以复制它们在客户端上动态构建时会更改的内容。

以下是如何将 CA 网格导出到 excel 中的简短示例:

public void ExportDataSetToExcel() {
object theColl = gridEmployee.DataSource; //just set this as your grid's datasource.
GridView excelGrid = new GridView();
excelGrid.DataSource = theColl;
excelGrid.ID = "Export";
excelGrid.DataBind();
excelGrid.AutoGenerateColumns = true;

Response.Clear();
Response.Buffer = true;
Response.ContentType = "application/vnd.ms-excel";
Response.AddHeader("content-disposition", "attachment;filename=RegainExport.xls");
Response.Charset = "";
Response.Cache.SetCacheability(HttpCacheability.NoCache);
System.IO.StringWriter stringWrite = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);
excelGrid.RenderControl(htmlWrite);
Response.Write(stringWrite.ToString());
Response.End();
}

因此,在绑定(bind) GridView 的数据源之前,您需要执行 ClientTemplate 复制。

关于excel - ComponentArt:导出网格数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1272526/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com