出于项目的需求,写了这样一个控件,使用起来很简单,只需要3句代码:
exportExcel.FileType = TSCRMLiteWeb.SC.ExportFileType.Excel;
exportExcel.ExportFileName = "currencyList";
exportExcel.TargetControlID = "currencyContianer.gridCurrencyList";
需要说明的只有几点:
1.由于项目中所有需要导出内容的控件都是DataGrid,因此只针对对此控件的测试,满足需求先,其它就没有测试过了:)
2.属性ExportFileName不要扩展名,FileType属性指定以后,控件自身就会得到对应的扩展名了
3.如要绑定到GridView需要在页面的后台代码中加:
public override void VerifyRenderingInServerForm(Control control)
{
}
否则会报:
类型“GridView”的控件“GridView1”必须放在具有 runat=server 的窗体标记内.错误
4.最关键的地方就是TargetControlID,这是需要导出内容的服务器控件的“路径“,通常是DataGrid的ID值,如果你的DataGrid就直接在Page下面,那么TargetControlID的值就直接设为DataGrid的ID,如果DataGrid父亲控件不是Page,那么一直追朔到Page下的一级控件,比如上面的例子,currencyContainer就是一个Page下面的控件,gridCurrencyList的父亲控件是currencyContainer,他们之间用点号分开,看过代码后你就会知道是为什么了,就这些。这里是所有的代码:
ps:更新了一下代码,另外如果DataGrid中包含类似LinkButton这样的控件,绑定值的时候应该使用
,而不要使用
这样的形式,因为这样Text将不会被倒入Excel中
浙公网安备 33010602011771号