ASP Repeater 控件和导出到 Excel





0/5 (0投票)
ASP Repeater 控件 Repeater 控件用于显示绑定到该控件的重复项目列表。 Repeater 控件可以
ASP Repeater 控件
Repeater 控件用于显示绑定到该控件的重复项目列表。
Repeater 控件可以绑定到数据库表、XML 文件或其他项目列表。
会有不同的更好的方法来实现下面的代码... 我想出这个是为了分享一个例子..
示例:
<body>
<form id="frm1" method="post" runat="server">
<div id="div1">
<table align="center" width="98%" cellpadding="0" cellspacing="0" border="1">
<tr><th colspan="5" height="20">报告</th></tr>
<tr><td colspan="5"> </td></tr>
<tr>
<td colspan="5"><input type="button" id="btnExport" runat="server" value="导出报告"></td>
</tr>
<tr>
<td colspan="5">
<%
rptHistory.DataSource = Nothing
rptHistory.DataBind()
Dim dsDetails As DataSet
''从数据库表检索数据到数据集
If dsDetails.Tables("User").Rows.Count = 0 Then
dsDetails = Nothing
Exit Sub
Else
rptHistory.DataSource = dsDetails.Tables("User")
rptHistory.DataBind()
dsDetails = Nothing
End If
%>
</td>
</tr>
<asp:Repeater ID="rptHistory" Runat="server">
<HeaderTemplate>
<tr>
<td align="center" style="BACKGROUND-COLOR: #ffcccc"><b>姓名</b></td>
<td align="center" style="BACKGROUND-COLOR: #ffcccc"><b>年龄</b></td>
<td align="center" style="BACKGROUND-COLOR: #ffcccc"><b>城市</b></td>
<td align="center" style="BACKGROUND-COLOR: #ffcccc"><b>学校</b></td>
<td align="center" style="BACKGROUND-COLOR: #ffcccc"><b>班级</b></td>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr id="trCnt" runat="server">
<td> <%# DataBinder.Eval(Container.DataItem, "Name") %></td>
<td align="center"><%# DataBinder.Eval(Container.DataItem, "Age") %></td>
<td align="center"><%# DataBinder.Eval(Container.DataItem, "City") %></td>
<td align="center"><%# DataBinder.Eval(Container.DataItem, "School") %></td>
<td> <%# DataBinder.Eval(Container.DataItem, "Class") %></td>
</tr>
</ItemTemplate>
</asp:Repeater>
<%
'在这里缓存 Repeater 控件
Cache.Remove("Report")
Cache.Insert("Report", rptHistory)
%>
</table>
</div>
</form>
</body>
导出到 Excel
Response.Clear()
Response.Charset = ""
Response.Cache.SetCacheability(HttpCacheability.NoCache)
Response.ContentType = "application/vnd.xls"
Response.AddHeader("content-disposition", "attachment;filename=" & "Report.xls")
Dim sw As New System.IO.StringWriter
Dim htw As New HtmlTextWriter(sw)
DirectCast(Cache("Report"), Repeater).RenderControl(htw)
Dim sb1 As New System.Text.StringBuilder
sb1 = sb1.Append("<table cellSpacing='0' cellPadding='0' width='100%' align='center' border='1'>" & sw.ToString() & _
"</table>")
sw = Nothing
htw = Nothing
Response.Write(sb1.ToString())
sb1.Remove(0, sb1.Length)
Response.Flush()
Response.End()