我在asp.net里面这样截取字符串显示不出来效果。
<asp:LabelID="lab_title"runat="server"Font-Bold="True"ForeColor="#C00000"><%#Eval("Mt...
<asp:Label ID="lab_title" runat="server" Font-Bold="True" ForeColor="#C00000"><%# Eval("Mt_News_title").ToString().Length> 12 ? ("Mt_News_title").Substring(0, 12) : ("Mt_News_title")%></asp:Label> 然后调试页面却显示的是Mt_News_title
展开
3个回答
2014-01-01
展开全部
你少了两个Eval<%# Eval("Mt_News_title").ToString().Length> 12 ? Eval("Mt_News_title").Substring(0, 12) : Eval("Mt_News_title")%> 而且你这个做法不太好恭维, 虽然效率并不是大问题, 但这样浪费还是不太漂亮。你这里至少要进行两次Eval,而Eval方法是反射取值, 效率平平。 你应该在获取数据源时就解决长度问题。或者你可以这样:在页面类的代码里写这样的方法public string EvalMaxLength(string expression, int maxLength){ if(maxLength == 0) return string.Empty; var v = Eval(expression); if(v == null) return string.Empty; var sv = v.ToString(); return sv.Length > maxLength ? sv.SubString(0, maxLength) : sv;} 然后在 aspx 中这样写<asp:Label ID="lab_title" runat="server" Font-Bold="True" ForeColor="#C00000"><%# EvalMaxLength("Mt_News_title",12)</asp:Label>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-01-01
展开全部
楼主,对的了,这是一个三目运算符,形式是:条件?表达式1:表达式2 意思是:如过条件为true(真)的时候,执行表达式1,否则执行表达式2. 因为你的这个字符串长度是12,条件不成立,所以显示的是表达式2. 显示结果为:Mt_News_title 这个字符串长度是从0开始的! 很高兴回答你的问题,要开心哦!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-01-01
展开全部
你在测试显示的时候要 将 Mt_News_title 标题的值 超过12 个字 才能够看到效果撒、
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询