编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛  
全能 ASP / PHP / ASP.NET 主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付学习型 ASP/PHP/ASP.NET 主机 30元/年
 12 12
发新话题
打印

Label文本的长度大于表的宽度,想让大于的那部份用省略号代替,怎么办??

Label文本的长度大于表的宽度,想让大于的那部份用省略号代替,怎么办??

我建了一个表,表宽固定,但只要Label文本的内容过长,它就会把表撑开.我想各位高手帮忙,能不能让多余的文本用省略号代替.......谢谢了

TOP

substring(参数1,参数2) +"...";

TOP

回复 2# kevintang 的帖子

不好意思,刚才没说清楚.我是用DataList然后到数据库取数据,你看以下面的代码:
   <table style="width: 470px; height: 170px">
                    <tr>
                        <td rowspan="2" style="width: 180px; height: 170px">
                        </td>
                        <td style="width: 290px; height: 25px; background-image: url(images/290.jpg);">
                            新闻资讯</td>
                    </tr>
                    <tr>
                        <td style="width: 290px; height: 145px; vertical-align: text-top;">
                            <asp:DataList ID="dlnews" runat="server">
                            <ItemTemplate>
                            <asp:Label ID="lblnews" runat="server" Text=""><a href="daohang.ascx?newsID=<%#Eval("newsID") %>"><%#Eval("newsname") %></a></asp:Label>
                            </ItemTemplate>
                            </asp:DataList>
                            </td>
                    </tr>
                </table>

代码页是:
  string sqlstr = Convert.ToString(ConfigurationManager.ConnectionStrings["sqlserver"]);
        SqlConnection conn = new SqlConnection(sqlstr);
        conn.Open();
        SqlDataAdapter da = new SqlDataAdapter("select * from news order by newstime desc",conn);
        DataSet ds = new DataSet();
        da.Fill(ds);
        dlnews.DataSource = ds;
        dlnews.DataBind();


因为表的宽度我想固定,而其中一条数据很长,所以不的不省略号.麻烦帮我看看,谢谢......

TOP

我是基本上没有听懂你的意思,如果你不想用省略号,但是不想撑开的话,你可以固定lable的大小。

TOP

回复 4# 贝蕾 的帖子

就比如有这么一段文字:"我是基本上没有听懂你的意思,如果你不想用省略号"
但我希望得到的只是前面的几个显示方试,也就是:"我是基本上没有听懂你的意思,如果你..."
其他的内容我想等用户点进去再看具体内容.谢谢帮忙....

TOP

这属于表格没有限制宽度 你可以将表格的宽度限制下来 让他的内容多的时候可以自动换行 试试这个代码看看把
<td width="200" height="50" style="table-layout:fixed; WORD-WRAP:break-word; word-break:break-all">!</td>加在你的表格里试试
或者你写个字符串截取 也可以规定label里超过的字用点代替

TOP

string a="我是基本上没有听懂你的意思,如果你不想用省略号";
stirng b=a.substring(0,17)+"……";
【www.bcsnjd.cn】编程少年基地提供在线视频教程、电子图书、程序源码等众多资源  近期将推出第六届齐鲁大学生软件设计大赛参赛队员及评委老师的寄语专题

TOP

在前台用>"<%#Eval("newsname")%> ,Eval()返回的有String类型重载,你可以用楼上的方法,逻辑判断后,可用Substring()
2.也可在后天些一个方法,例:
string CutString(string source)
    {
        if (source.Length > 10)
        {
            source = source.Substring(0, 10) + "...";
        }
        return source;
    }
前台调用:<%# CutString(Eval("newsname"))%>
其实这两钟本质是一样的
机遇是给有准备的人

TOP

回复 8# yuzhou 的帖子

不好意思...昨天没上班,所以没看到.....我看了,感觉方法很不错,可是我是刚学的,代码看的懂,但是不知道要把代码加在我的代码中的哪个位置,能不能说清楚点,或者帮我加在上面的代码中?????
谢谢

TOP

string sqlstr = Convert.ToString(ConfigurationManager.ConnectionStrings["sqlserver"]);
        SqlConnection conn = new SqlConnection(sqlstr);
        conn.Open();
        SqlDataAdapter da = new SqlDataAdapter("select * from news order by newstime desc",conn);
        DataSet ds = new DataSet();
        da.Fill(ds);
        foreach(DataRow dr in ds.Tables[0].Rows)
        {
                string temp=dr["newsname"].toString();
                if(temp.length>100)
                   temp=temp.substring(0,100)+"……";
                dr["newsname"]=temp;
        }
        dlnews.DataSource = ds;
        dlnews.DataBind();
在执行DataBind将数据绑定到DataList之前
http://www.lxzhcn.net
版块版主招募中
网站论坛发帖无问题,欢迎发帖。

TOP

 12 12
发新话题