2012-04-09 57 views
1

我不得不修理表头当我向下滚动我想看到列标题直到记录结束。我做到了这一点,但我面临一个问题。我从数据库中获取数据,这是一个动态数据,所以当我在表格中显示布局变得很奇怪。因为如果有超过1000个单词的列将改变其宽度,而我提到了表格单元格宽度和百分比。我怎么能解决这个问题,头部仍然在顶部,并且布局不会受到任何数据干扰。我不想使用jQuery如何修复与垂直滚动中继器控制表的标题?

.gridScrollDiv 
{ 
border:1px solid #CCCCCC; 
height: 500px; 
overflow: scroll; 
overflow-x: hidden; 
} 

<div class="gridScrollDiv"> 
    <table id="tblData" class="grid" style="width: 100%;" cellpadding="0"> 
     <thead style="position:absolute;"> 
      <tr> 
       <th style="width:40%;"> 
        Code 
       </th> 
       <th style="width:40%;"> 
        Description 
       </th> 
       <th style="width:20%;"> 
        Date 
       </th> 
      </tr> 
     </thead> 
     <tbody> 
      <asp:Repeater ID="rptLoation" runat="server"> 
       <ItemTemplate> 
        <tr> 
         <td style="width:40%; word-wrap:breake-word;"> 
          <%# DataBinder.Eval(Container.DataItem, "Code")%> 
         </td> 
         <td style="width:40%; word-wrap:breake-word;"> 
          <%# DataBinder.Eval(Container.DataItem, "Description")%> 
         </td> 
         <td style="width:20%; word-wrap:breake-word;"> 
          <%# DataBinder.Eval(Container.DataItem, "RegistrationDate")%> 
         </td> 
        </tr> 
       </ItemTemplate> 
      </asp:Repeater> 
     </tbody> 
    </table> 
</div> 
+0

当你的问题是“请改变我的代码中加入此功能”,你的首要任务应该是张贴你想改变的代码。 – Alain 2012-04-09 12:48:56

+0

@Alain你的意思是? – 2012-04-09 12:51:29

回答

0

你可以使用下面的代码。我修改了css。

.gridScrollDiv 
    { 
     border: 1px solid #CCCCCC; 
     height: 500px; 
     overflow-y: scroll; 
    } 

从中继器取出头部。

<table style="width: 100%;"> 
    <tr style="font-weight: bold;"> 
     <tr> 
      <td style="width: 40%; text-align: left"> 
       Code 
      </td> 
      <td style="width: 40%; text-align: left"> 
       Description 
      </td> 
      <td style="width: 20%; text-align: left"> 
       Date 
      </td> 
     </tr> 
</table> 
<div class="gridScrollDiv"> 
    <asp:Repeater ID="rptLoation" runat="server"> 
     <HeaderTemplate> 
      <table style="width: 100%;"> 
     </HeaderTemplate> 
     <ItemTemplate> 
      <tr> 
       <td style="width: 40%; word-wrap: breake-word;"> 
        <div style="width: 350px; overflow-x: scroll;"> 
        <%# DataBinder.Eval(Container.DataItem, "Code")%> 
        </div> 
       </td> 
       <td style="width: 40%; word-wrap: breake-word;"> 
        <div style="width: 350px; overflow-x: scroll;"> 
        <%# DataBinder.Eval(Container.DataItem, "Description")%> 
        </div> 
       </td> 
       <td style="width: 20%; word-wrap: breake-word;"> 
        <div style="width: 350px; overflow-x: scroll;"> 
        <%# DataBinder.Eval(Container.DataItem, "RegistrationDate")%> 
        </div> 

       </td> 
      </tr> 
     </ItemTemplate> 
     <FooterTemplate> 
      </table> 
     </FooterTemplate> 
    </asp:Repeater> 
</div> 

这可能会解决你的目的....

+0

亲爱的问题是,当我输入的数据超过500或100个单词不适合单元格时,它会更改不应更改的表的方向,因为每次使用精确的百分比宽度时,只要它带有大数据它创建布局问题的单元格我不希望这样。如果单个单元太长,我想包装文本。 – 2012-04-10 06:58:56

+0

word-wrap css只有在你的数据或者说字线有空间的情况下才能正常工作。你可以尝试一下将一些硬编码的文本与空间。例如:第-1行:“嗨,thereisproblemwithcss”第2行:“嗨,有问题的CSS”..你可以发现,第2行工作正常与自动换行CSS。 :) – 2012-04-10 07:18:40

+0

好吧,但是当我用不同的输入数据测试我的应用程序时,我得到了这些词之间没有空格的问题。实际上,我想在我的应用程序中处理这种情况,如果这样做会很好。 – 2012-04-10 07:25:57