技术开发 频道

扩展GridView控件--导出为Excel

  【IT168 技术文档】添加这个控件到工具箱里,然后拖拽到webform上,在GridView内加一个按钮,把CommandName属性设置为“ExportToExcel”,CommandArgument属性的值用“;”做分隔符分为两部分,左边的部分为导出Excel的文件名称,右边的部分为需要隐藏的列的索引(列索引用“,”分开)
ObjData.cs

using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.ComponentModel; /**//**//**//// <summary> /// OjbData 的摘要说明 /// </summary> public class OjbData ...{ public OjbData() ...{ // TODO: 在此处添加构造函数逻辑 } [DataObjectMethod(DataObjectMethodType.Select, true)] public DataTable Select() ...{ DataTable dt = new DataTable(); dt.Columns.Add("no", typeof(string)); dt.Columns.Add("name", typeof(string)); for (int i = 0; i < 30; i++) ...{ DataRow dr = dt.NewRow(); dr[0] = "no" + i.ToString().PadLeft(2, '0'); dr[1] = "name" + i.ToString().PadLeft(2, '0'); dt.Rows.Add(dr); } return dt; } }

Default.aspx

<%...@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>SmartGridView测试</title> </head> <body> <form id="form1" runat="server"> <div> <yyc:SmartGridView ID="SmartGridView1" runat="server" AutoGenerateColumns="False" DataSourceID="ObjectDataSource1"> <Columns> <asp:TemplateField ItemStyle-Width="50px"> <headertemplate> <asp:Button id="btnExportToExcel" runat="server" Text="Excel" CommandName="ExportToExcel" CommandArgument="ExcelFileName;5,6" /> </headertemplate> <itemtemplate> <%...# Container.DataItemIndex + 1 %> </itemtemplate> </asp:TemplateField> <asp:BoundField DataField="no" HeaderText="序号" SortExpression="no" ItemStyle- Width="100px" /> <asp:BoundField DataField="name" HeaderText="名称" SortExpression="name" ItemStyle- Width="100px" /> <asp:BoundField DataField="no" HeaderText="序号" SortExpression="no" ItemStyle- Width="100px" /> <asp:BoundField DataField="name" HeaderText="名称" SortExpression="name" ItemStyle- Width="100px" /> <asp:BoundField DataField="no" HeaderText="序号" SortExpression="no" ItemStyle- Width="100px" /> <asp:BoundField DataField="name" HeaderText="名称" SortExpression="name" ItemStyle- Width="100px" /> </Columns> </yyc:SmartGridView> <asp:ObjectDataSource ID="ObjectDataSource1" runat="server" SelectMethod="Select" TypeName="OjbData"></asp:ObjectDataSource> </div> </form> </body> </html>

注:为了防止出错要在.cs代码中加上下面这句

public override void VerifyRenderingInServerForm(Control control) { }

另外,如果你的GridView中含有命令按钮的话要在.aspx页面的头部中加上下面这个属性

EnableEventValidation="false"
0
相关文章