求在.net中让文章标题显示固定字数其余显示省略号的代码
求在.net中让文章标题显示固定字数其余显示省略号的代码在.net中用datagrid显示新闻,怎么让新闻标题就显示15个字多余的字用省略号代替?? --------------------编程问答--------------------
string tmp = title.ToString();--------------------编程问答-------------------- protected string substring(string str, string strlen)
if (tmp.Length > 15)
{
tmp = tmp.Remove(12);
tmp += "...";
}
{
int l, t;
t = 0;
Int16 len = Convert.ToInt16(strlen);
l = str.Length;
for (int i = 0; i < l; i++)
{
if (Convert.ToChar(str.Substring(i, 1)) > 255)
{
t += 2;
}
else
{
t += 1;
}
if (t >= len)
{
return str.Substring(0, i) + "……";
}
}
return str.Substring(0, l);
}
#endregion --------------------编程问答-------------------- /// <summary>
/// 将超过一定长度的字符串截短,并加上后缀(如...),用于显示缩略信息(如在datagird里显示)
/// </summary>
/// <param name="rr">要截取的字串</param>
/// <param name="length">截取长度</param>
/// <param name="endstring">后缀字串</param>
/// <returns></returns>
public static string CutStringToLength(string rr, int length, string endstring)
{
string temp = string.Empty;
if (rr.Length > length)
{
int t = 0;
char[] q = rr.ToCharArray();
for (int i = 0; t < length; i++)
{
if ((int)q[i] >= 0x4E00 && (int)q[i] <= 0x9FA5)//if chinese char in string(chinese char is larger)
{
temp += q[i];
t += 2;
}
else
{
temp += q[i];
t++;
}
}
return (temp + endstring);
}
else {
temp = rr;
return temp;
}
}
--------------------编程问答-------------------- 简单问题复杂化了。 --------------------编程问答-------------------- ding,shouchang --------------------编程问答-------------------- public string GetString(string title)//显示时,控制长度,的显示
{
int length = title.Length;
string content = "";
if (length > 15)
{
content = title.Substring(0,15)+"...";
return content;
}
else
{
return title;
}
}
--------------------编程问答-------------------- 后台(如:test.aspx.cs)代码加上下面方法:
public string cutStr(string Str,int length)
{
if(Str.Length>length)
{
return Str.Substring(0,length)+"...";
}
else
{
return Str;
}
}
前台(如:test.aspx)调用:
在datagrid中的:
...
<ItemTemplate><asp:Label runat="server" Text='<%# cutStr(DataBinder.Eval(Container, "DataItem.title").ToString()) %>'>
</asp:Label></ItemTemplate>
...
其它类似。 --------------------编程问答-------------------- 交给css处理. --------------------编程问答--------------------
public static string FixLenB(string strContent,int sLen)--------------------编程问答--------------------
{
//超过规定长度加上“…”
byte[] s1 = System.Text.Encoding.Default.GetBytes(strContent);
int tLen=sLen+2; //规定长度加上“…”的总长度
//若转换为字节的字符串的长度小于指定的长度加上“...”的总长度则执行
if(s1.Length<=tLen)
{
return strContent;
}
else
{
strContent=System.Text.Encoding.Default.GetString(s1,0,sLen)+"…";;
return strContent;
}
}
string str = "12345678901234567890";--------------------编程问答--------------------
str = (str.Length > 15) ? str.Substring(0, 15) + "..." : str;
--------------------编程问答-------------------- 高手们 这不是.net啊 我不懂C --------------------编程问答-------------------- 上面都是c#代码!
Response.Write(str);
//输出结果为:123456789012345...
你需要的功能要写在datagrid的itemcreate事件里,... --------------------编程问答-------------------- <div class="textrow"><asp:Lable id="lbl1" text='Eval("title")'></asp:Lable></div>
.textrow{ OVERFLOW: hidden; WIDTH: 270px; WHITE-SPACE: nowrap; TEXT-OVERFLOW: ellipsis; }
WIDTH: 270px; 超过270px的就会用...显示
--------------------编程问答-------------------- 你用DataGrid,GridView显示数据的话
在ItemDataBind事件里判断下不就行了么
FindControl找到显示字符的Label
if(label1.Text.Length>15)
{
Label.Text = lebel1.Text.SubString(0,10)+"....";
}
这样不就行了么? --------------------编程问答-------------------- 这个最理想的状态就是用CSS来控制
补充:.NET技术 , ASP.NET