Проблема с разметкой HTML-вида в Excel - PullRequest
0 голосов
/ 20 августа 2010

Я использую код, похожий на код упоминания на http://www.dutch -creatives.com / запись / 2009/08/11 / Экспортно-ListView к 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?

1 Ответ

0 голосов
/ 20 августа 2010

Исправлено это путем изменения всего лишь двух строк кода

ExlUtil.ConvertControl(_listview)
                _listview.RenderControl(htw)
...