Datalist的样式问题格式化为Div Table

时间:2015-04-01 17:23:48

标签: html css asp.net webforms datalist

我正在创建一个格式化为表格的数据列表,使用格式的div。问题是表格的标题与表格的其余部分没有对齐。

如果我删除HeaderTemplate,它会正确排列。关于我如何解决这个问题的任何建议?

我的Datalist Aspx

<asp:DataList ID="Table1" runat="server" RepeatColumns="1" CellSpacing="1" RepeatLayout="Table">
  <HeaderTemplate>
      <div class="Table">
      <div class="Heading">
          <div class="Cell">
             <p>Heading 1</p>
          </div>
          <div class="Cell">
             <p>Heading 2</p>
          </div>
          <div class="Cell">
             <p>Heading 3</p>
          </div>
          <div class="Cell">
             <p>Heading 4</p>
          </div>
         <div class="Cell">
             <p>Heading 5</p>
         </div>
         <div class="Cell">
             <p>Heading 6</p>
         </div>
         <div class="Cell">
             <p>Heading 7</p>
         </div>
       </div>
</HeaderTemplate>
<ItemTemplate>                    
<div class="Row">
         <div class="Cell">
             <p>Row 1 Column 1</p>
         </div>
         <div class="Cell">
             <p>Row 1 Column 2</p>
         </div>
         <div class="Cell">
             <p>Row 1 Column 3</p>
         </div>
         <div class="Cell">
             <p>Row 1 Column 4</p>
         </div>
         <div class="Cell">
             <p>Row 1 Column 5</p>
         </div>
         <div class="Cell">
             <p>Row 1 Column 6</p>
         </div>
         <div class="Cell">
              <p>Row 1 Column 7</p>
         </div>
      </div>
   </div>
</ItemTemplate>
</asp:DataList>

我的CSS

.Table
{
display: table;
}
.Heading
{
display: table-row;
font-weight: bold;
text-align: center;
}
.Row
{
display: table-row;
}
.Cell
{
display: table-cell;
border: solid;
border-width: thin;
padding-left: 5px;
padding-right: 5px;
}

问题的屏幕截图 enter image description here

注意:我感谢任何其他建议,但使用格式化为使用Divs的表格的Datalist绝对没有表格是一个很难/不可改变的要求,完全不在我的手中。

2 个答案:

答案 0 :(得分:1)

我希望通过这个example提供帮助,尽管最好放一个主div并且包含构成表格的元素

.Table {
  display: table;
  width:100% !important;
}
.Heading {
  display: table-row;
  font-weight: bold;
  text-align: center;
}
.Row {
  display: table;
  width:100% !important;
}
.Cell {
  display: table-cell;
  border: solid;
  border-width: thin;
  padding-left: 5px;
  padding-right: 5px;
}

答案 1 :(得分:0)

即使你有一个HeaderTemplate,在渲染的HTML中,&#34;行&#34;不包含<div class="Table">。可能的解决方法是简单地将width:100%;添加到&#34; .Table&#34;类