首页 新闻 会员 周边 捐助

删除repeater中数据为空(字符串空)的行,或者隐藏

0
悬赏园豆:30 [已解决问题] 解决于 2016-12-11 11:25
 1 <asp:Repeater ID="sdfdsf" runat ="server"   >
 2             <HeaderTemplate><table></HeaderTemplate>
 3             <ItemTemplate>
 4          <tr>
 5            <td>
 6                        <%# Eval("Scontent") %>
 7            </td>
 8                  </tr>
 9                 <tr>
10                <td> <%# Eval("Dtitle") %></td>
11                </tr>
12             </ItemTemplate>
13             <FooterTemplate></table></FooterTemplate>
14         </asp:Repeater>

我想把这两个(    <%# Eval("Scontent") %>,<%# Eval("Dtitle") %></td>)绑定当做一个模块,每次都绑定这两个数据,但是有的时候这两个其中之一会是字符串空,这样绑定之后前台会变成有空行,如图,dynamic显示和❤赛赛中间的数据是字符串空,如何去掉这一空行

佰大于的主页 佰大于 | 初学一级 | 园豆:159
提问于:2016-12-11 09:53
< >
分享
最佳答案
0

 Eval("Scontent") 做下处理去掉换行符

收获园豆:25
风行魔狼 | 菜鸟二级 |园豆:487 | 2016-12-11 10:03

不是这个的原因,是  <%# Eval("Scontent") %>,<%# Eval("Dtitle") %> 中有一个数据为字符串空导致在显示的时候显示为空白,我的目的是不要这个空白出现

佰大于 | 园豆:159 (初学一级) | 2016-12-11 10:05

@佰大于: <%# !string.IsNullOrEmpty( Eval("Scontent").ToString())?string.Format("<tr><td>{0}</td></tr>",Eval("Scontent")):""%>

<%# !string.IsNullOrEmpty(Eval("Dtitle").ToString())?string.Format("<tr><td>{0}</td></tr>",Eval("Dtitle")):""%>

我测试了没问题

风行魔狼 | 园豆:487 (菜鸟二级) | 2016-12-11 11:09

@佰大于: 

<asp:Repeater ID="rp1" runat="server" OnDataBinding="rp1_DataBinding" OnItemCreated="rp1_ItemCreated" OnPreRender="rp1_PreRender">
<HeaderTemplate>
<table>
</HeaderTemplate>
<ItemTemplate>
<%# !string.IsNullOrEmpty( Eval("name").ToString())?string.Format("<tr><td>{0}</td></tr>",Eval("name")):""%>
<%# !string.IsNullOrEmpty(Eval("sex").ToString())?string.Format("<tr><td>{0}</td></tr>",Eval("sex")):""%>
</ItemTemplate>
<FooterTemplate></table></FooterTemplate>
</asp:Repeater>

风行魔狼 | 园豆:487 (菜鸟二级) | 2016-12-11 11:09

@风行魔狼: 

 <asp:Repeater ID="sdfdsf" runat ="server"   >
            <HeaderTemplate><table></HeaderTemplate>
            <ItemTemplate>
         <tr>
           <td>
             
              <%# !string.IsNullOrEmpty( Eval("Scontent").ToString())?string.Format("<tr><td>{0}</td></tr>",Eval("Scontent")):""%>

                </td>
                 </tr>
                          

                <tr>
               <td>
                   
                   <%# !string.IsNullOrEmpty(Eval("Dtitle").ToString())?string.Format("<tr><td>{0}</td></tr>",Eval("Dtitle")):""%>

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

还是有空行,我用的vs2015,firefox

佰大于 | 园豆:159 (初学一级) | 2016-12-11 11:17

@风行魔狼: 您能解释一下这行代码的意思吗?我不太明白,谢谢

佰大于 | 园豆:159 (初学一级) | 2016-12-11 11:19

@佰大于:如果数据为空就不显示<tr><td></td><tr>,这样就避免了显示空行

风行魔狼 | 园豆:487 (菜鸟二级) | 2016-12-11 11:20

@佰大于: 你写的多了<tr><td>,要按照我写的

风行魔狼 | 园豆:487 (菜鸟二级) | 2016-12-11 11:21

@佰大于: <asp:Repeater ID="rp1" runat="server" >
<HeaderTemplate>
<table>
</HeaderTemplate>
<ItemTemplate>
<%# !string.IsNullOrEmpty( Eval("name").ToString())?string.Format("<tr><td>{0}</td></tr>",Eval("name")):""%>
<%# !string.IsNullOrEmpty(Eval("sex").ToString())?string.Format("<tr><td>{0}</td></tr>",Eval("sex")):""%>
</ItemTemplate>
<FooterTemplate></table></FooterTemplate>
</asp:Repeater>

风行魔狼 | 园豆:487 (菜鸟二级) | 2016-12-11 11:21

@风行魔狼: 恩,我后来发现这个问题了

佰大于 | 园豆:159 (初学一级) | 2016-12-11 11:21

@风行魔狼: 在请教一下,如果要是想隐藏这个这一块该怎么办呢

佰大于 | 园豆:159 (初学一级) | 2016-12-11 11:51

@佰大于: 截图中整个tr不显示?

风行魔狼 | 园豆:487 (菜鸟二级) | 2016-12-11 13:16

@风行魔狼: 是的

佰大于 | 园豆:159 (初学一级) | 2016-12-11 13:19

@佰大于: 一样的做法

<asp:Repeater ID="rp1" runat="server" OnDataBinding="rp1_DataBinding" OnItemCreated="rp1_ItemCreated" OnPreRender="rp1_PreRender">
<HeaderTemplate>
<table>
</HeaderTemplate>
<ItemTemplate>
<%# !string.IsNullOrEmpty( Eval("name").ToString())?string.Format("<tr><td><label id=\"11\" runat=\"server\" >sdfsf</label></td><td>{0}</td></tr>",Eval("name")):""%>
<%# !string.IsNullOrEmpty(Eval("sex").ToString())?string.Format("<tr><td>{0}</td></tr>",Eval("sex")):""%>
</ItemTemplate>
<FooterTemplate></table></FooterTemplate>
</asp:Repeater>

风行魔狼 | 园豆:487 (菜鸟二级) | 2016-12-11 13:28

@风行魔狼: 那就是把需要的格式什么的都放在format第一个参数就可以是吧

佰大于 | 园豆:159 (初学一级) | 2016-12-11 13:30

@佰大于: 对,就是拼接字符串

风行魔狼 | 园豆:487 (菜鸟二级) | 2016-12-11 13:33

@风行魔狼: 请问这两个尖括号怎么转移呢?

其次除了这种字符串拼接方法还有其他的吗?因为替换字符中有各种控件标签,一个一个换很费时,之后也不好做修改

佰大于 | 园豆:159 (初学一级) | 2016-12-11 14:10
其他回答(3)
0
<% if(Eval("Scontent").toString() === "") {%>


} else {%>


}%>

这样写呢?

收获园豆:5
逐影 | 园豆:982 (小虾三级) | 2016-12-11 11:03

格式是错误的,请麻烦再写一遍

支持(0) 反对(0) 佰大于 | 园豆:159 (初学一级) | 2016-12-11 11:06

@佰大于: 

<% if(Eval("Scontent").toString() === "") {%>
<%} else {%>
<td></td>
<%}%>
类似这样
支持(0) 反对(0) 逐影 | 园豆:982 (小虾三级) | 2016-12-11 11:09
0

膜拜大佬,你数据库是怎么设计的啊

定不负相思懿 | 园豆:132 (初学一级) | 2016-12-11 11:26

分开设计,重新建表拼起来

支持(0) 反对(0) 佰大于 | 园豆:159 (初学一级) | 2016-12-11 11:27

@佰大于: 真实表还是虚拟表?

支持(0) 反对(0) 定不负相思懿 | 园豆:132 (初学一级) | 2016-12-11 11:28

@定不负相思懿: 混着来,大表是服务器真实表

支持(0) 反对(0) 佰大于 | 园豆:159 (初学一级) | 2016-12-11 11:28

@佰大于: 也就是所有说说日志之类的放进去大表真实表,动态是真实表,单个说说或日志从分开的虚拟表里?

支持(0) 反对(0) 定不负相思懿 | 园豆:132 (初学一级) | 2016-12-11 11:30

@定不负相思懿:正解

支持(0) 反对(0) 佰大于 | 园豆:159 (初学一级) | 2016-12-11 11:35
0

 Eval("name").Trim()后,再判断IsNullOrEmpty

Robin.JiangDH | 园豆:223 (菜鸟二级) | 2016-12-16 16:06
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册