怎么把新闻标题Title在前台显示一个长度
我用uc做了一个显示新闻标题,里面绑定用的Repeater 怎么在绑定Title 的时候显示长度一样的如果小于就用..表示 --------------------编程问答-------------------- 取数据的时候substring下,然后Replace --------------------编程问答-------------------- 自己在后台定义一个Substring(string title)方法,绑定的时候<%#Substring(Eval("Title"))%>protected string Substring(string title)
{
if (title.Length>15)
{
title = title.Substring(0, 15) + "...";
}
return title;
} --------------------编程问答-------------------- substring --------------------编程问答-------------------- 没用过 顶下 --------------------编程问答-------------------- CSS控制
http://www.jb51.net/css/10022.html --------------------编程问答--------------------
不行呀 --------------------编程问答--------------------
具体操作? --------------------编程问答--------------------
他这个可以的 绑定的时候<%#Substring(Eval("Title").ToString())%> --------------------编程问答-------------------- 2楼的方法
绑定<%#Substring(Eval("Title").ToString())%>
--------------------编程问答-------------------- <%#Eval("Title").ToString().Length>15 ? Eval("Title").SubString(0,15)+"..." : Eval("Title")%>
--------------------编程问答--------------------
改一下 --------------------编程问答-------------------- 绑定的时候<%#formattitle(Eval("Title"))%>
后台定义方法
Public string formattitle(object o)
{
string s = o.ToString();
if (s.Length>10)
{
s = s.substring(0,10);
}
return s;
} --------------------编程问答-------------------- 修改一下:
s=s.substring(0,10)+"..."; --------------------编程问答--------------------
+1
可以把截取字数当做参数传入,方便重用
--------------------编程问答--------------------
System.Data.DataRowView”不包含名为“Title”的属性。
出现这个问题了 --------------------编程问答--------------------
绑定的时候<%#formattitle(Eval("Title").ToString())%>
--------------------编程问答-------------------- <%#Eval("Title").ToString().Length>15 ? Eval("Title").ToString().SubString(0,15)+"..." : Eval("Title")%>
这个就行! --------------------编程问答-------------------- 除 --------------------编程问答--------------------
后台 数据是放在datatbel 里面的 出现了DataBinding:“System.Data.DataRowView”不包含名为“Title”的属性。 --------------------编程问答--------------------
格式化输出... --------------------编程问答-------------------- 10楼正解 --------------------编程问答-------------------- 后台 数据是放在datatbel 里面的 出现了DataBinding:“System.Data.DataRowView”不包含名为“Title”的属性。 怎么解决? --------------------编程问答-------------------- 直接用CSS
另存为 htm文件看下效果:
<style>
span {display: block;width: 120px;overflow: hidden;/*注意不要写在最后了*/white-space: nowrap;-o-text-overflow: ellipsis;text-overflow: ellipsis;}
</style>
<body>
<span>测试是多少大啊沙发飒飒大是多少</span>
</body>
--------------------编程问答--------------------
--------------------编程问答-------------------- --------------------编程问答-------------------- title是字段名
<%#Eval("Name").ToString().Length>10?Eval("Name").ToString().Substring(0,10)+"..":Eval("Name") %>
你要截取哪个就用哪个字段
--------------------编程问答--------------------
+1 --------------------编程问答-------------------- SQL取数据的时候搞定
case when LEN(title)>11 then LEFT(title,11)+'...' else title end as title --------------------编程问答--------------------
+1 --------------------编程问答-------------------- <%#(DataBinder.Eval(Container.DataItem,"website").ToString().Length>20)? (DataBinder.Eval(Container.DataItem,"website").ToString().Substring(0,20))+"...": (DataBinder.Eval(Container.DataItem,"website") )%>
数据太长截取 --------------------编程问答-------------------- 用CSS加三行样式就可以实现的 --------------------编程问答--------------------
+1
这个截取,加上CSS样式控制,
长度正好占满行宽,然后再截取。否则就不截取。 --------------------编程问答--------------------
我这样用过。 。。 可以。。 --------------------编程问答--------------------
--------------------编程问答--------------------
/// <summary>
/// 截取长度为length的字符串,剩下部分以...表示
/// 中文算两个字符
/// </summary>
/// <param name="str"></param>
/// <param name="length"></param>
/// <returns></returns>
public static string CutString(string str, int length)
{
if (!String.IsNullOrEmpty(str))
{
if (length <= 0)
{
throw new Exception("The argument length can't be zero or negative!");
}
int i = 0, j = 0;
foreach (char chr in str)
{
if ((int)chr > 127)
{
i += 2;
}
else
{
i++;
}
if (i > length)
{
str = String.Format("{0}...", str.Substring(0, j));
break;
}
j++;
}
}
else
{
str = String.Empty;
}
return str;
}
--------------------编程问答--------------------
/// <summary>
/// 截取半角字符串(一个全角字符按2长度计算),当截取的位置只到全角字符的一半时不会取到该全角字符
/// </summary>
/// <param name="str">字符串</param>
/// <param name="startIndex">开始截取位置</param>
/// <param name="length">要截取的字符串长度</param>
/// <param name="fillStr">当字符串长度超过要截过的长度时追加到字符串末尾</param>
/// <returns></returns>
public static string CutDBCString(string str, int startIndex, int length, string fillStr)
{
if (string.IsNullOrEmpty(str))
{
return "";
}
StringBuilder builder = new StringBuilder();
Encoding encoding = Encoding.GetEncoding("gb2312");
int num = 0;
int num2 = startIndex + length;
foreach (char ch in str)
{
if (num >= startIndex)
{
num += encoding.GetByteCount(ch.ToString());
if (num <= num2)
{
builder.Append(ch);
goto Label_00FB;
}
int dBCLength = GetDBCLength(fillStr);
int num4 = 0;
while ((builder.Length > 0) && (num4 < dBCLength))
{
int num5 = builder.Length - 1;
string s = builder[num5].ToString();
num4 += encoding.GetByteCount(s);
builder.Remove(num5, 1);
}
builder.Append(fillStr);
break;
}
num += encoding.GetByteCount(ch.ToString());
Label_00FB: ;
}
return builder.ToString();
}
public static int GetDBCLength(string str)
{
if (string.IsNullOrEmpty(str))
{
return 0;
}
return Encoding.GetEncoding("gb2312").GetBytes(str).Length;
}
//调用的时候
string str=CutDBCString("楼主我要分,快给分吧", 0, 10, "...")
//输出结果为:楼主我...
补充:.NET技术 , ASP.NET