出于项目的需求,写了这样一个控件,使用起来很简单,只需要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这样的控件,绑定值的时候应该使用
打印 | 张贴于 2004-09-21 11:17:00 | Tag:DotNet
留言反馈
还可以用在DataList上面的哦
我看了半天也没看到有保存文件的代码
是不是还要在客户端代码里再写的啊
中的currencyList是保存文件的路径名吗?
这些代码是不是就在.CS文件里的?
<asp:TemplateColumn HeaderText="Quantity">
<ItemTemplate>
<asp:TextBox id=QuantityTextBox runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.Quantity") %>' MaxLength="2" style="width:50px;" />
<asp:RequiredFieldValidator runat="server" id=QuantityRequiredFieldValidator controlToValidate=QuantityTextBox errormessage='<%# DataBinder.Eval(Container, "DataItem.Description") %>' display=dynamic >*</asp:RequiredFieldValidator>
<asp:RangeValidator runat="server" id=QuantityRangeValidator controlToValidate=QuantityTextBox errormessage='<%# DataBinder.Eval(Container, "DataItem.Description") %>' display=dynamic type=integer maximumvalue=50 minimumvalue=0 >*</asp:RangeValidator>
</ItemTemplate>
</asp:TemplateColumn>
,出错!去掉后完全正常!
请好心人指点一下吧。:(
phoenixsong@buaa.edu.cn
编译错误
说明: 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。
编译器错误信息: CS0122: 不可访问“reportweb.ToExcel.Button1_Click(object, System.EventArgs)”,因为它受保护级别限制
源错误:
行 11: <body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
行 12: <form id="frm" runat="server">
行 13: <asp:Button id="Button1" runat="server" Text="Export to Excel" OnClick="Button1_Click"></asp:Button><BR>
行 14: <asp:Datagrid id="dg" runat="server" AutoGenerateColumns="True" AllowSorting="true" AllowPaging="true"
行 15: CellPadding="3" PageSize="3">
源文件: C:\Inetpub\wwwroot\reportweb\ToExcel.aspx 行: 13
我只是测试了一下datagrid下的使用。
先收下,用到的时候再测试。。。