用<%# DataBinder.Eval(Container.DataItem,"NewsID")%>显示数据的,如果标题太长了怎么规定字数,多余的用"..."代替
用<%# DataBinder.Eval(Container.DataItem,"NewsID")%>显示数据的,如果标题太长了怎么规定字数,多余的用"..."代替 问题点数:20、回复次数:38Top
1 楼breakerfish(泡泡鱼)回复于 2005-09-23 23:05:57 得分 5
呵呵,其实在控件里也可以绑定方法的.
如:
protected string yourstring (newid)
{
string s
if (newid.Length>10)
{
....
return s
}
else{
.....
return s
}
}
这样用:
<%# yourstring (DataBinder.Eval(Container.DataItem,"NewsID"))%>
也可以的~~,也就是先处理,后调用绑定Top
2 楼shadowno(龙门无影)回复于 2005-09-23 23:13:48 得分 5
方法1
<%# DataBinder.Eval(Container.DataItem,"Title") %>改成:<%# DataBinder.Eval(Container.DataItem,"Title").ToString().Length>13?DataBinder.Eval(Container.DataItem,"Title").ToString().SubString(0,13):DataBinder.Eval(Container.DataItem,"Title").ToString() %>
方法2
//在后写一个函数调用
public string ConvertSubString(string strinput)
{
if(strinput.lenght>10)
{
return strinput.substring(0,10) + "...";
}
else
{
return strinput.tostring();
}
}
<%# ConvertSubString(DataBinder.Eval(Container.DataItem,"StrName")) %>>Top
3 楼myllop(大猪)回复于 2005-09-23 23:29:34 得分 0
不行的,在cs页面里加入后,编译的时候说:“protected string yourstring (newid)”中应输入标识符Top
4 楼xiahouwen(武眉博<活靶子.NET>)回复于 2005-09-23 23:34:34 得分 0
protected string yourstring (newid)
-->
protected string yourstring (string newid)Top
5 楼xiahouwen(武眉博<活靶子.NET>)回复于 2005-09-23 23:36:48 得分 0
其实根本用不着代码用样式表就搞定了
overflow:hidden; text-overflow:ellipsis;white-space:nowrap;
演示
http://www.aspxboy.com
你看html代码内是全部的内容,但是在显示的时候如果到达容器边缘就自动出现"..."了Top
6 楼myllop(大猪)回复于 2005-09-23 23:36:53 得分 0
与“WebApplication1.NewsList.DisNewsTitle(string)”最匹配的重载方法具有一些无效参数
Top
7 楼gavinluo()回复于 2005-09-23 23:43:07 得分 0
如果要是vb的简单一点<%# left(DataBinder.Eval(Container.DataItem,"NewsID"),10)%>...
c#需用通过tostring来实现Top
8 楼fordfamily(c#阁下)回复于 2005-09-23 23:52:40 得分 0
赞成css的做法Top
9 楼afdfgg(午夜飞行)回复于 2005-09-24 01:42:24 得分 5
text-overflow:ellipsis 这个属性只有IE6.0才支持吧,我的思路是在SQL语句里面先做判断
SELECT (case
WHEN LEN(NewsID) > 10 then LEFT(NewsID,8) + '...'
ELSE
NewsID
END
) AS NewsTitle
FROM YourTable
输出直接用<%# DataBinder.Eval(Container.DataItem,"NewsTitle")%>
以上代码在Sqlserver2000中测试通过Top
10 楼myllop(大猪)回复于 2005-09-24 22:54:04 得分 0
这两种方法都不行。
方法1
<%# DataBinder.Eval(Container.DataItem,"Title") %>改成:<%# DataBinder.Eval(Container.DataItem,"Title").ToString().Length>13?DataBinder.Eval(Container.DataItem,"Title").ToString().SubString(0,13):DataBinder.Eval(Container.DataItem,"Title").ToString() %>
方法2
//在后写一个函数调用
public string ConvertSubString(string strinput)
{
if(strinput.lenght>10)
{
return strinput.substring(0,10) + "...";
}
else
{
return strinput.tostring();
}
}
<%# ConvertSubString(DataBinder.Eval(Container.DataItem,"StrName")) %>>
Top
11 楼zerocoin(木目木)回复于 2005-09-24 23:07:08 得分 0
我用的是"午夜飞行"的那类在数据库SQL语句上的处理,比较好理解也较为方便!Top
12 楼Student02370236(★★★★★★)回复于 2005-09-24 23:12:54 得分 0
前段时间我也提了一个相同的问题,不过在这里看到了更多的方法...Top
13 楼vivianfdlpw()回复于 2005-09-24 23:19:02 得分 0
SQL or CSSTop
14 楼mshuk(小麦哥)回复于 2005-09-24 23:45:34 得分 0
不错,学到了不少东西。Top
15 楼hoyanzi(hoyanzi)回复于 2005-09-24 23:51:40 得分 0
大猪哥哥的第一方法,我是经常用的!!!Top
16 楼ghd2004(JavaApi.cn)回复于 2005-09-25 00:25:41 得分 0
学习中
!Top
17 楼dragonforfly(飘零)回复于 2005-09-25 07:56:28 得分 0
后台添加一个方法,判断一下,然后返回要求的长度.Top
18 楼wula0010(wula0010)回复于 2005-09-25 09:56:23 得分 0
在ItemDataBound事件中:
if(e.Item.ItemIndex !=-1)
{
if(e.Item.Cells[4].Text.ToSTring.length>30)
{
e.Item.Cells[4].Text=e.Item.Cells[4].Text.substring(0,30)+"...";
}
}Top
19 楼wangbiao(卡卡西)回复于 2005-09-25 10:14:12 得分 0
还是SQL的比较好用`
Top
20 楼grass00(grass)回复于 2005-09-25 10:15:34 得分 0
在sql语句中用left或substring函数
select left("列明",你要的数字长度) as 要绑定的列名 from data
然后在前台绑定就ok substring也是一样Top
21 楼tongwenhuan2003(蓝驿)回复于 2005-10-04 23:10:41 得分 0
哈哈,大家一起发言,学到不少哦Top
22 楼lovebanyi(风云)回复于 2005-10-05 07:40:04 得分 0
四种言法中还是样式表最爽了Top
23 楼liuxiaoyi666(MSMVP 小猪妹荣誉马甲之八卦兔子)回复于 2005-10-05 07:43:47 得分 0
语法:
text-overflow : clip | ellipsis
参数:
clip : 不显示省略标记(...),而是简单的裁切
ellipsis : 当对象内文本溢出时显示省略标记(...)
说明:
设置或检索是否使用一个省略标记(...)标示对象内文本的溢出。
对应的脚本特性为textOverflow。请参阅我编写的其他书目。
示例:
div { text-overflow : clip; }
Top
24 楼jyk(今天由我来写的代码,明天就让程序自己完成!喜欢编程。和气生财。共同提高。共同进步!)回复于 2005-10-05 08:18:00 得分 0
CSS的方法在IE6.0是可以的
但是在FIREFOX下,没有 ... 的效果,直接切掉了,而且会出现切掉半个字的现象。Top
25 楼renyu732(Sysinfo)回复于 2005-10-05 09:26:02 得分 0
subString
left都可以的.Top
26 楼smin1994(smin1994)回复于 2005-10-07 10:09:58 得分 0
坐下了Top
27 楼jimu8130(火箭的未来在哪里?)回复于 2005-10-07 10:31:56 得分 0
sql语句的比较好Top
28 楼winstonczc(大航海时代)回复于 2005-10-07 12:13:06 得分 0
学到不少东西Top
29 楼grass00(grass)回复于 2005-11-23 11:18:08 得分 0
找了一个很简单的
(DataBinder.Eval(Container.DataItem,"MailSubject").ToString().Length>30)?DataBinder.Eval(Container.DataItem,"MailSubject").ToString().Substring(0,30)+"...":DataBinder.Eval(Container.DataItem,"MailSubject").ToString()
Top
30 楼ahui4367()回复于 2005-11-23 12:49:01 得分 0
假如数据库的内容果里面有html的代码呢,
如:
<table>
<tr>
<td>
这是要显示的内容,就是没有办法显示。
</td>
</tr>
</table>
如果我现在用了Substring来做,
如Substring(0,5);
我想要的效果是这样的。--------> 这是要显示...
但是结果是这样的。 --------> <tabl...
有办法解决吗?谢谢了
Top
31 楼wuye(午夜循环(QQ:260968))回复于 2005-11-23 13:04:21 得分 0
用政则表达式吧显示的内容分类出来以后再substringTop
32 楼truelove12(结贴者寥寥无几,心寒ing...)回复于 2005-11-23 13:10:22 得分 0
vb.net
<%# (DataBinder.Eval(Container.DataItem,"NewsID").substring(0,10) & "...")%>...Top
33 楼ahui4367()回复于 2005-11-23 13:12:56 得分 0
你看看,HTML那么多标记.用正则表达式太多了啊,不好弄的Top
34 楼jxufewbt(我的目标是5星)回复于 2005-11-23 13:26:52 得分 5
<%# DataBinder.Eval(Container.DataItem,"demand").ToString().Length>15?DataBinder.Eval(Container.DataItem,"demand").ToString().Substring(0,15) + "...":DataBinder.Eval(Container.DataItem,"demand").ToString()%>
Top
35 楼ahui4367()回复于 2005-11-23 13:33:59 得分 0
jxufewbt(我的目标是5星)
你能帮我解决吗?就是含有HTML的截取字符串.Top
36 楼werther161(werther161)回复于 2005-11-23 13:35:35 得分 0
http://community.csdn.net/Expert/topic/4270/4270577.xml?temp=.1096002 看看这个已结的贴子,一样的问题哦Top
37 楼zhangjian01361(★非也非也★)回复于 2005-11-23 13:55:40 得分 0
我经常用wula0010(wula0010) 的这种方法.Top
38 楼ahui4367()回复于 2005-11-23 14:24:18 得分 0
终于弄成功了.
正则表达式的弄的.
public string StripTags(string text)
{
text = Regex.Replace(text, @" ", "", RegexOptions.IgnoreCase);
text = Regex.Replace(text, @"\r\n", "", RegexOptions.IgnoreCase);
return Regex.Replace(text, @"<.+?>", "", RegexOptions.Singleline);
}
tring str = "<table>\r\n<tr>\r\n<td>\r\n这是要显示的内容,就是没有办法显示。\r\n</td>\r\n</tr>\r\n</table>";
然后调用StripTags("str").SubString(0,5)
就可以得到我要的效果了.Top




