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

怎么把新闻标题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 --------------------编程问答--------------------
引用 2 楼 posefooler 的回复:
自己在后台定义一个Substring(string title)方法,绑定的时候<%#Substring(Eval("Title"))%>
  protected string Substring(string title) 
  {
  if (title.Length>15)
  {
  title = title.Substring(0, 15) + "...";
  }
  ……
没用过         顶下 --------------------编程问答-------------------- CSS控制 
http://www.jb51.net/css/10022.html --------------------编程问答--------------------
引用 2 楼 posefooler 的回复:
自己在后台定义一个Substring(string title)方法,绑定的时候<%#Substring(Eval("Title"))%>
  protected string Substring(string title) 
  {
  if (title.Length>15)
  {
  title = title.Substring(0, 15) + "...";
  }
  ……


不行呀 --------------------编程问答--------------------
引用 1 楼 xujun5031 的回复:
取数据的时候substring下,然后Replace

具体操作? --------------------编程问答--------------------
引用 2 楼 posefooler 的回复:
自己在后台定义一个Substring(string title)方法,绑定的时候<%#Substring(Eval("Title"))%>
    protected string Substring(string title) 
    {
        if (title.Length>15)
        {
            title = title.Substri……

他这个可以的 绑定的时候<%#Substring(Eval("Title").ToString())%> --------------------编程问答-------------------- 2楼的方法
绑定<%#Substring(Eval("Title").ToString())%>
--------------------编程问答-------------------- <%#Eval("Title").ToString().Length>15 ? Eval("Title").SubString(0,15)+"..." : Eval("Title")%>
--------------------编程问答--------------------
引用 10 楼 feng1366259807 的回复:
<%#Eval("Title").ToString().Length>15 ? Eval("Title").ToString().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)+"..."; --------------------编程问答--------------------
引用 12 楼 cf_nxcxy 的回复:
绑定的时候<%#formattitle(Eval("Title"))%>
后台定义方法
Public string formattitle(object o)
{
string s = o.ToString();
if (s.Length>10)
{
s = s.substring(0,10);
}
return s;
}



+1

可以把截取字数当做参数传入,方便重用

--------------------编程问答--------------------
引用 14 楼 q0708m 的回复:
引用 12 楼 cf_nxcxy 的回复:
绑定的时候<%#formattitle(Eval("Title"))%>
后台定义方法
Public string formattitle(object o)
{
string s = o.ToString();
if (s.Length>10)
{
s = s.substring(0,10);
}
return s;
}


……

System.Data.DataRowView”不包含名为“Title”的属性。 
出现这个问题了 --------------------编程问答--------------------
引用 12 楼 cf_nxcxy 的回复:
绑定的时候<%#formattitle(Eval("Title"))%>
后台定义方法
Public string formattitle(object o)
{
string s = o.ToString();
if (s.Length>10)
{
s = s.substring(0,10);
}
return s;
}


绑定的时候<%#formattitle(Eval("Title").ToString())%>
--------------------编程问答-------------------- <%#Eval("Title").ToString().Length>15 ? Eval("Title").ToString().SubString(0,15)+"..." : Eval("Title")%>

这个就行! --------------------编程问答-------------------- 除 --------------------编程问答--------------------
引用 17 楼 ynsky 的回复:
<%#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>
--------------------编程问答--------------------

<%#Eval("Name").ToString().Length>10?Eval("Name").ToString().Substring(0,10)+"..":Eval("Name") %>
--------------------编程问答-------------------- --------------------编程问答-------------------- title是字段名
你要截取哪个就用哪个字段
--------------------编程问答--------------------
引用 10 楼 feng1366259807 的回复:
<%#Eval("Title").ToString().Length>15 ? Eval("Title").SubString(0,15)+"..." : Eval("Title")%>

+1 --------------------编程问答-------------------- SQL取数据的时候搞定
case when LEN(title)>11 then LEFT(title,11)+'...' else title end as title --------------------编程问答--------------------
引用 2 楼 posefooler 的回复:
自己在后台定义一个Substring(string title)方法,绑定的时候<%#Substring(Eval("Title"))%>
    protected string Substring(string title) 
    {
        if (title.Length>15)
        {
            title = title.Substri……



+1 --------------------编程问答-------------------- <%#(DataBinder.Eval(Container.DataItem,"website").ToString().Length>20)? (DataBinder.Eval(Container.DataItem,"website").ToString().Substring(0,20))+"...": (DataBinder.Eval(Container.DataItem,"website") )%>
数据太长截取 --------------------编程问答-------------------- 用CSS加三行样式就可以实现的 --------------------编程问答--------------------
引用 24 楼 huangwenquan123 的回复:
HTML code


<%#Eval("Name").ToString().Length>10?Eval("Name").ToString().Substring(0,10)+"..":Eval("Name") %>

+1
这个截取,加上CSS样式控制,
长度正好占满行宽,然后再截取。否则就不截取。 --------------------编程问答--------------------
引用 2 楼 posefooler 的回复:
自己在后台定义一个Substring(string title)方法,绑定的时候<%#Substring(Eval("Title"))%>
  protected string Substring(string title) 
  {
  if (title.Length>15)
  {
  title = title.Substring(0, 15) + "...";
  }
  ……


我这样用过。 。。 可以。。  --------------------编程问答--------------------

/// <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
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,