首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

Repeater生成的表格IE9显示错误

2013-08-11 
Repeater生成的表格IE9显示异常[imghttp://8e.images22.51img1.com/6000/li2008kui/e784b25611917f0153ad

Repeater生成的表格IE9显示异常
[img=http://8e.images22.51img1.com/6000/li2008kui/e784b25611917f0153adcbf5120ac6b5.jpg#100136645][/img]
[解决办法]
图片可以传到CSDN上来
[解决办法]
运行页面,鼠标右键,查看网页源文件

你直接检查一下生成的HTML代码是些什么,你就找到原因了
[解决办法]
Repeater里的td如果是空的话加一个空格 

还有就是控制好每个td的百分比
[解决办法]
包含Repeater的table设置其width="100%",然后在Repeater内的td设置其width属性值
<td class="name" align="center" style="width:5%;">
   <%# Container.ItemIndex + 1 %>
</td>
你首先算好了多少列,然后正好凑够100%即可,这个得你自己调整了。
[解决办法]
你应该贴生成后的html源码,即加载完页面后,右键点击页面,选“查看源文件”,把那段贴出来
[解决办法]

引用:
没看到Repeater 的任何东西
下面那个《tr》《td》《/td》《/tr》td里没东西是我原本就这样写有的 Repeater 的<tr><td>都没看到


Repeater控件只是模板,生成后它就消失了,它的ID也不会出现,它只关心你给它的各模板的定义

例子1:
<asp:Repeater ID="Rep_Con" runat="server">
        <HeaderTemplate>
            <table class="style1" style="border: 1px solid #949694" cellspacing="0px" cellpadding="6px">
        <tr>
            <td class="td1" style="border-bottom-style: solid; border-bottom-width: 1px; border-bottom-color: #949694; background-color: #D8E5F6">
                企业名称</td>
             <td class="td1" style="border-bottom-style: solid; border-bottom-width: 1px; border-bottom-color: #949694; background-color: #D8E5F6">
                被查看的简历</td>


            <td class="td2" style="padding-right:30px;">
                最近查看时间</td>
        </tr>
        </HeaderTemplate>
        <ItemTemplate>
           <tr>
            <td class="td1" style="border-bottom-style: dotted; border-bottom-width: 1px; border-bottom-color: #949694">
                <a href='../../JobView.aspx?CID=<%# Eval("CompanyID")%>' target="_blank" style="color:#5A7D9C; text-decoration:none"><%# Eval("CompanyName")%></a></td>
            <td class="td1" style="border-bottom-style: dotted; border-bottom-width: 1px; border-bottom-color: #949694">
                <a href='../Resume/LookResume.aspx?RID=<%# Eval("ResumeID")%>' target="_blank" style="color:#5A7D9C; text-decoration:none"><%# Eval("ResumeName")%></a></td>
            <td style="color:Black" class="td3">
                <%# Eval("ConcernDate")%></td>
        </tr>
        </ItemTemplate>
        <FooterTemplate>
           <tr>
            <td colspan="4" style="text-align:right">
               <webdiyer:AspNetPager ID="AspNetPager1" runat="server" HorizontalAlign="Right" NumericButtonCount="10" 
             PagingButtonSpacing="10px" ShowPageIndexBox="Never" NextPageText="&gt;" 
                                      PrevPageText="&lt;" PageSize="10" 
             FirstPageText="&lt;&lt;" LastPageText="&gt;&gt;" Width="100%" AlwaysShow="True" onpagechanged="AspNetPager1_PageChanged">


        </webdiyer:AspNetPager>
            </td>
        </tr>
    </table>
        </FooterTemplate>
    </asp:Repeater>




//下面是带换行背景效果的
<asp:Repeater ID="Rep_Mes" runat="server">
              <HeaderTemplate><table width="714" border="0" cellspacing="0" cellpadding="0"></HeaderTemplate>
              <ItemTemplate>
                  <tr>
           <td width="100" height="30" align="left" valign="middle" bgcolor="#f0f5fb"> <%# RetunrDate(Eval("InTop"), Eval("CreateDate")) %></td>
           <td width="614" height="30" align="left" valign="middle" bgcolor="#f0f5fb"><a href='UserFiles/<%# Eval("FileName")%>' target="_blank"><%# ReturnMessageTitle(Eval("MessageTitle"), Eval("Price"), Eval("ImageNum"), Eval("AreaName"), Eval("CategoryName"))%></a></td>
         </tr>
              </ItemTemplate>
              <AlternatingItemTemplate>
                 <tr>
           <td height="30" align="left" valign="middle"> <%# RetunrDate(Eval("InTop"), Eval("CreateDate")) %></td>
           <td height="30" align="left" valign="middle"><a href='UserFiles/<%# Eval("FileName")%>' target="_blank"><%# ReturnMessageTitle(Eval("MessageTitle"), Eval("Price"), Eval("ImageNum"), Eval("AreaName"), Eval("CategoryName"))%></a></td>
         </tr>
              </AlternatingItemTemplate>
              <FooterTemplate>
                   <tr>


           <td height="30" colspan="2" align="left" valign="middle"> </td>
         </tr>
         <tr>
           <td height="70" colspan="2" align="center" valign="middle" bgcolor="#F0F5FB" class="font34">
              <table cellpadding="0" cellspacing="0">
                          <tr>
                              <td>
                      <webdiyer:AspNetPager ID="AspNetPager1" runat="server" Width="100%" 
                                      HorizontalAlign="Center" NumericButtonCount="10" PagingButtonSpacing="10px" 
                                      ShowFirstLast="False" ShowPageIndexBox="Never" NextPageText="下一页>>" 
                                      PrevPageText="<<上一页" OnPageChanged="AspNetPager1_PageChanged" 
                                      PageSize="100">
        </webdiyer:AspNetPager>
                              </td>
                              <td>
                                 (共<span id="Spa_RecordNum" runat="server"></span>条信息)</td>


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


[解决办法]
这就奇怪了,从2楼的图片看来,第二行记录明显多出了一个td单元,从它超出标题行就看得出

你一在不使用UpdatePanel时,则正常,

但一使用UpdatePanel,则第二行多出一个td单元,按理说应该是UpdatePanel没正确包住,因为你使用UpdatePanel时,局部刷新的HMTL只限于UpdatePanel包围圈里的,这里多出一个td。

但你又说正确

你可以假设一下,UpdatePanel包住的部分会被刷新,相当于使用JS重构这部分的HTML代码,或许你能找到原因
[解决办法]
单从你12楼发出来的源码,没看出什么问题,除非你在这个事件中OnItemCommand="Repeater1_ItemCommand"中自己显示向控件的行对象中添加了一些单元什么的,你自己检查一下

//最后建议你估计一些哪些数据源可能没有值,也就是空值时,你做这样的处理
<td class="name" align="center">
  <%# (Eval("sjName") != DBNull.Value) ? Eval("sjName") : "&nbsp;"%>
  </td>


//如果那些没绑定的,直接给空格HTML标识
<td class="name" align="center">
   &nbsp;
</td>
//这样可以确保生成的单元数目一致
[解决办法]
楼主问题解决了么,我也出这样的问题,已经解决,并不是因为你的代码没有闭合,也跟Updatepanel有一定关系。
我的解决办法是把Html原代码改了一下,去掉缩进,这样就OK了。

你用的是不是VS2010,并且启用了虚空格。这样在IE9下就有问题,火狐什么的都没事儿。

热点排行