当前位置:编程学习 > C#/ASP.NET >>

求在.net中让文章标题显示固定字数其余显示省略号的代码

求在.net中让文章标题显示固定字数其余显示省略号的代码
在.net中用datagrid显示新闻,怎么让新闻标题就显示15个字多余的字用省略号代替?? --------------------编程问答--------------------
            string tmp = title.ToString();
            if (tmp.Length > 15)
            {
                tmp = tmp.Remove(12);
                tmp += "...";
            }
--------------------编程问答-------------------- protected string substring(string str, string strlen)
    {
        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;
--------------------编程问答--------------------

Response.Write(str);
//输出结果为:123456789012345... 
--------------------编程问答-------------------- 高手们  这不是.net啊  我不懂C --------------------编程问答-------------------- 上面都是c#代码!
你需要的功能要写在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
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,