我正在使用类似于代码提及的代码 http://www.dutch-creatives.com/post/2009/08/11/Export-ListView-to-Excel.aspx 将Listview导出为excel
我的列表视图
<asp:ListView ID="lv" runat="server">
<LayoutTemplate>
<table runat="server" id="table1" class="datatable" >
<tr class="row" id="tableRow" runat="server">
<th rowspan="2"></th>
</tr>
<tr runat="server" id="itemPlaceholder"></tr>
</table>
</LayoutTemplate>
<ItemTemplate>
<tr id="Tr1" runat="server" class="row">
<td id="Td1" runat="server">
<asp:Label ID="Label6" runat="server"
Text='<%#Eval("xyz") %>' />
</td>
</tr>
</ItemTemplate>
</asp:ListView>
我正在添加标题如下
' Create a form to contain the grid
Dim table = New HtmlTable()
Dim tCell = New HtmlTableCell()
Dim tRow = New HtmlTableRow()
'Add the header row
Dim header As HtmlTableRow = DirectCast(_listview.FindControl("tableRow"), HtmlTableRow)
ExlUtil.ConvertControl(header)
table.Rows.Add(header)
然后每个项目
For Each item As ListViewDataItem In _listview.Items
tCell.Controls.Add(item)
tRow.Controls.Add(tCell)
ExlUtil.ConvertControl(item)
table.Rows.Add(tRow)
Next
table.RenderControl(htw) //htw is htmltextwriter object
但是这个(table.RenderControl)将最终的html代码呈现为
<table>
<tr>
<th></th>
<th></th>
<th></th>
</tr>
<tr> 'problem here
<td> 'problem here
<tr> <td></td> </tr>
<tr> <td></td> </tr>
</td>
</tr>
</table>
我试图调试,理解为什么它会产生额外的tr td但却不能。 谁能告诉我为什么它会产生额外的tr,td标记?
答案 0 :(得分:0)
通过将所有内容更改为仅两行代码
来解决此问题ExlUtil.ConvertControl(_listview)
_listview.RenderControl(htw)