我现在在做一个企业的网站
在首页要显示公司新闻的最新几(5)条新闻标题的列表
我用一个GridView来绑定从数据库中读出来的新闻标题现在有一个问题,就是有的新闻标题太长,如果全部读出来就就会影响界面美观所以我想这样,当标题长度超过15个字时,只显示前13个字后加"..."
当标题长度小于15个字时就全部显示
我用了
<ItemTemplate>
<asp:HyperLink ID="HyperLink4" runat="server" CssClass="t01" NavigateUrl='<%#News.aspx?NID=Eval("JobID") %>'
   Text='<%# Eval("JobName").ToString().Substring(0,15)+"..." %>' ToolTip='<%# Eval("JobName")%>'></asp:HyperLink>
   </ItemTemplate>
这样做当标题大于15时是正确的,但当小于15时则会出错,因为不满足Substring的要求
请教各位高手我该怎么办
在线等啊
先感谢各位了

解决方案 »

  1.   

    偶解决哒...
    呵呵...
    在DataBound事件里面写代码判断
    protected void GridView1_DataBound(object sender, EventArgs e)
        {
            int i;
            for (i = 0; i < this.GridView1.Rows.Count; i++)
            {
                GridViewRow gr = GridView1.Rows[i];
                string jobname = ((HyperLink)gr.Cells[0].FindControl("hpJob")).Text;
                if (jobname.Length>12)
                {
                    ((HyperLink)gr.Cells[0].FindControl("hpJob")).Text = jobname.Substring(0,10)+"...";
                }
                else
                    ((HyperLink)gr.Cells[0].FindControl("hpJob")).Text =jobname;
            }
        }帖出来
    也许对别的朋友有用结帖拉
    看来我的分是送不出去咯
    :)
      

  2.   

    我也是刚解决,我得方法是:
    写SQL语句时做限制:
    select left(hpJob,10) as A from biao
      

  3.   


    楼上朋友的方法比我的简单多了不过我还要求一个功能就是
    当鼠标移到上面时显示全部标题,也就是用ToolTip绑定标题列
    所以我在sql选择语句中不能用left函数
      

  4.   

    Text='<%# Eval("JobName").ToString().Length>15?Eval("JobName").ToString().Substring(0,15)+"...":Eval("JobName").ToString().Substring(0,15)%>'
      

  5.   

    :后面可以直接写Eval("JobName")就可以了啊.没必要再截取了