我在用datalisi,显示数据时他总是自动根据显示数据的长度自动调整长度!
1)我该怎样固定datalist的长度呢!显示不完的数据就省略。
2)怎样固定datalist的长度,如果数据已近显示完,就不管,如果不完就在后面加个“...”
比如:(新闻标题)
 同意以5.5亿美元的价... 谢谢前辈们指点!谢谢!

解决方案 »

  1.   

    我给你个例子!
    给我e-mail!
      

  2.   

    你写个函数截取字符串就好了..//changdu 是代表从那里开始截取
    //jiequ 是截取多少位
    //aa 是要截取的字符
    public string zijie(string aa,int changdu,int jiequ){
    if (aa.Length>jiequ){
    aa = aa.Substring(changdu,jiequ);
    return aa;
    }
    else{
    return aa;
    }
    }
      

  3.   

    直接对datalist动手不行吗?谢谢前辈!
      

  4.   

    你可以用这个方法来截取指定长度的子字符串:
    http://blog.mvpcn.net/webdiyer/archive/2004/11/11/5420.aspx
      

  5.   

    谢谢吴哥,但是出了“截取指定长度的子字符串”外,还有其他的办法吗?比如设置datalist等?
      

  6.   

    我的意思是简单点,能否强制设置datalist,无论内容多长都只固定他的长度,多的就不显示!
      

  7.   

    哦!谢谢前辈们!但还有一点不明白:
    实在是新手,还有一点不明白,望前辈指点!
    我在datalist的<ItemTemplate></ItemTemplate>中的内容是这样的,
    <a href='shownews.aspx?id=<%# DataBinder.Eval(Container.DataItem,"newsid") %>' target="_blank" >
    <%# DataBinder.Eval(Container.DataItem,"newstitle") %>
    </a>如果我现在“代码区”定义截取字符串函数JQ(),那该如何在<ItemTemplate></ItemTemplate>
    中使用这个函数呢呢?谢谢!
      

  8.   

    DataTable dt=c.ExecuteRtnTableForAccess(sqlText4);
    foreach(DataRow dr in dt.Rows)
    {
            string s=dr["ss"].ToString();
            if(s.Length>37)
            {
    dr["ss"]=s.Substring(0,37)+"..."; }
    else
    {
    dr["ss"]=s.Substring(0,s.Length);
    }
    }
    this.DataList4.DataSource=dt;
    这样就可以了,你上面的代码不用改,ss为字段名
      

  9.   

    我把代码译成了vb.net的,编译过不了
    Dim dt As DataTable = c.ExecuteRtnTableForAccess(sqlText4) 
    For Each dr As DataRow In dt.Rows 
     Dim s As String = dr("ss").ToString 
     If s.Length > 37 Then 
       dr("ss") = s.Substring(0, 37) + "..." 
     Else 
       dr("ss") = s.Substring(0, s.Length) 
     End If 
    Next 
    Me.DataList4.DataSource = dt提示 dr 未申明,dr是个什么呢?
    谢谢!
      

  10.   

    现在关键是,我的DataList.DataSource已经指点了一个值,那这个dt该如何指定给 DataList.DataSource呢?谢谢!!前辈!
      

  11.   

    不是,等于说,具体的我的datalist是绑定了一个datalist.DataSource =ds.Tables("news")表,如果我再绑定个新的dt,不是矛盾了嘛?谢谢!
      

  12.   

    你的表里是这几个字段吗<a href='shownews.aspx?id=<%# DataBinder.Eval(Container.DataItem,"newsid") %>' target="_blank" >
    <%# DataBinder.Eval(Container.DataItem,"newstitle") %>
    </a>  
    dt绑定的就是从数据库读出来的值,你还绑表做什么?只要处理一下过长的字符就可以了
    DataTable dt=c.ExecuteRtnTableForAccess(sqlText4);就是执行一个sql语句,返回一个DataTable
      

  13.   

    可能是我没说清楚,datalist我已和吴前辈写的aspnetpager绑定在了一起!我重新指点数据源的话,我的分页不是不行了吗?
    具体的我的完全的代码是这样的:
    adp.Fill(ds, pager.PageSize * (pager.CurrentPageIndex - 1), pager.PageSize, "news")
    datalist.DataSource =ds.Tables("news")谢谢!