出于项目的需求,写了这样一个控件,使用起来很简单,只需要3句代码:
exportExcel.FileType = TSCRMLiteWeb.SC.ExportFileType.Excel;
exportExcel.ExportFileName = "currencyList";
exportExcel.TargetControlID = "currencyContianer.gridCurrencyList";
需要说明的只有几点:
1.由于项目中所有需要导出内容的控件都是DataGrid,因此只针对对此控件的测试,满足需求先,其它就没有测试过了:)
2.属性ExportFileName不要扩展名,FileType属性指定以后,控件自身就会得到对应的扩展名了
3.最关键的地方就是TargetControlID,这是需要导出内容的服务器控件的“路径“,通常是DataGrid的ID值,如果你的DataGrid就直接在Page下面,那么TargetControlID的值就直接设为DataGrid的ID,如果DataGrid父亲控件不是Page,那么一直追朔到Page下的一级控件,比如上面的例子,currencyContainer就是一个Page下面的控件,gridCurrencyList的父亲控件是currencyContainer,他们之间用点号分开,看过代码后你就会知道是为什么了,就这些。这里是所有的代码:
ps:更新了一下代码,另外如果DataGrid中包含类似LinkButton这样的控件,绑定值的时候应该使用
<asp:LinkButton Text=''"<%#DataBinder.Eval(Container,&#8220;columnName&#8220;)%>"''></asp:LinkButton>,而不要使用
<asp:LinkButton><%#DataBinder.Eval(Container,&#8220;columnName&#8220;)%></asp:LinkButton>这样的形式,因为这样Text将不会被倒入Excel中