65.9K
CodeProject 正在变化。 阅读更多。
Home

ASP Repeater 控件和导出到 Excel

emptyStarIconemptyStarIconemptyStarIconemptyStarIconemptyStarIcon

0/5 (0投票)

2013 年 10 月 11 日

CPOL

1分钟阅读

viewsIcon

17095

 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">&nbsp;</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>&nbsp;<%# 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>&nbsp;<%# 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()

 

 

© . All rights reserved.