2010-05-20 90 views
16

我有一个ASP.NET ListView控件(见下文)。ASP.NET ListView - 渲染THEAD/TBODY标签

不幸的是,当一个ListView控件是呈现是没有HTML标记,如THEAD/TBODY。

这对我造成了一个问题,因为我使用的CSS样式需要这些标签。

<asp:ListView ID="ListView" runat="server" DataKeyNames="Id"> 
     <LayoutTemplate> 
      <div id="tableContainer" class="tableContainer"> 
       <table runat="server" class="scrollTable" > 
        <thead class="fixedHeader"> 
        <tr> 
         <th> 
          <span>Column1</span> 
         </th>       
        </tr> 
        </thead> 
        <tbody class="scrollContent"> 
        <tr id="itemPlaceholder" runat="server" /> 
        </tbody> 
       </table> 
      </div> 
     </LayoutTemplate> 
     <ItemTemplate> 
      <tr id="items" runat="server"> 
       <td class="first"> 
        <%#Eval("Column1")%> 
       </td>      
      </tr> 
     </ItemTemplate> 
    </asp:ListView> 

任何方式我可以让这些标签呈现?

我正在寻找一个干净的解决方案,我愿意使用jQuery Prepend/Append(如果可能)来取得成功。

回答

18

这是因为你标记表作为RUNAT元素

<table runat="server" class="scrollTable" > 

可能是ASP.NET表单框架的实现造成的表内容的解析与移除“THEAD”标签。

尝试实现您的布局,而不用runat =“server”标记表标记。我尝试了它,并且呈现了标记。

+0

*叹*这是一个意外的runat =“server”标签。我不知道我是如何错过的。谢谢。 – 2010-05-20 21:34:36

+0

同样发生在这里。但不是一个无意的错误。微软在其asp.net教程中的数据绑定示例中将表runat服务器设置为默认值。 – 2014-10-03 00:08:30