【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"
