[英]How do I export a Gridview Control to Excel in DotNetNuke?
是否有使用此替代方法,因为使用<form runat="server">
将导致500错误。
public override void VerifyRenderingInServerForm(Control control)
{
/* Verifies that the control is rendered */
}
EDITED
在@HansDerks的帮助下,我最终使用了以下内容(提供的解决方案的jazzed版本。):
protected void Export_Click(object sender, System.EventArgs e)
{
StringWriter writer = new StringWriter();
HtmlTextWriter htmlWriter = new HtmlTextWriter(writer);
GridView gridView = new GridView();
gridView.DataSource = MySqlDataSource;
gridView.AutoGenerateColumns = true;
gridView.DataBind();
gridView.HeaderRow.Style.Add("background-color", "#003c74");
gridView.HeaderRow.Style.Add("color", "#ffffff");
for (int i = 0; i < gridView.Rows.Count; i++)
{
GridViewRow row = gridView.Rows[i];
//Change Color back to white
row.BackColor = System.Drawing.Color.White;
//Apply text style to each Row
row.Attributes.Add("class", "textmode");
//Apply style to Individual Cells of Alternating Row
if (i % 2 != 0)
{
row.BackColor = System.Drawing.Color.AliceBlue;
}
}
gridView.RenderControl(htmlWriter);
htmlWriter.Close();
Response.Clear();
Response.AddHeader("content-disposition", "attachment;filename=filename.xls");
Response.Charset = "";
Response.Write(writer.ToString());
Response.End();
}
我希望你们会觉得它很有用。 感谢大家!
如果您有数据源,可以尝试这个(用相关数据源替换数据源)
private void DataTableToExcel(DataTable dataTable)
{
StringWriter writer = new StringWriter();
HtmlTextWriter htmlWriter = new HtmlTextWriter(writer);
GridView gridView = new GridView();
gridView.DataSource = dataTable;
gridView.AutoGenerateColumns = true;
gridView.DataBind();
gridView.RenderControl(htmlWriter);
htmlWriter.Close();
Response.Clear();
Response.AddHeader("content-disposition", "attachment;filename=FileName.xls");
Response.Charset = "";
Response.Write(writer.ToString());
Response.End();
}
如果使用基于Telerik控件的DNN网格控件,则可以使用以下方法导出网格的可见内容:
protected void OnExportCSVClick(Object sender, EventArgs e)
{
grdMemberTypes.MasterTableView.ExportToCSV();
}
这适用于DNN 7.0。
不幸的是,如果您打开了分页,它只会输出可见行中的数据。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.