DataGrid的超级链接列如何通过格式化字符串来截取指定个数的字符串?谢谢各位..

解决方案 »

  1.   

    up~~~up!!!另外在问一下在哪里可以查看我还有多少积分?
      

  2.   

    对,我要的就是
    暗暗暗暗暗暗暗暗暗暗
    变成
    暗暗暗暗....
    datagrid的超连接列不是有一个格式化字符串吗?怎么使用"格式化字符串"来实现上面的效果?
      

  3.   

    超级链接列好像不能截取...
    <%# Convert.ToString(Eval("name_pro")).Length > 8 ? Convert.ToString(Eval("name_pro")).Substring(0,8) : Eval("name_pro")%>
      

  4.   

    截字符串啊.....
    public string getStr(string src,int len)
    {
       string retstr=src;
       if(src.length>len)
       {
          ret=src.substring(0,len)+"...";
       }
       return retstr;}
      

  5.   

    那用超连接列传过去的值用Request.QueryString[""]接收一下
    然后再用SubString()方法截取一下吧
      

  6.   

    你写一个公用函数,在HTML中引用它就行了
    http://www.aspnet168.com.cn/
      

  7.   

    (Eval("----").Tostring().Length > 8)?(Eval("----").Tostring().SubString(0,8)+"..."):
    Eval("----")取前面8个字符显示
      

  8.   

    上边的兄弟们都已经解决了,呵呵。可以在数据库中提取的时候就截取。
    供楼主参考:
    数据库与句为: 
      "select  [字段1,字段2,(case when len(超级链接列的字段)>14 then left(超级链接列的字段,14)+'...' else 超级链接列的字段 end)  as 超级链接列的字段 from 表 where [查询条件] order by [排列顺序]";
       14就是字段的长度,当然是可以改的,呵呵。如果不够14个字就会全部显示。
      

  9.   

    因为我从数据库中取记录是共用的一个方法,所以不想在select语句中截取,这样会影响其他地方的调用.
    我用的是超级链接列,不是模版列.
    <asp:HyperLinkColumn Target="_blank" DataNavigateUrlField="autoId" DataNavigateUrlFormatString="morenew.aspx?id={0}"
    DataTextField="newsTitle" DataTextFormatString="Eval({0}).Tostring().Length &gt; 28)?(Eval({0}).Tostring().SubString(0,8)+&quot;...&quot;)%&">
    <ItemStyle CssClass="dx"></ItemStyle>
    </asp:HyperLinkColumn>
    在这里该怎么写?上面这样好象不行的.
      

  10.   

    试试我的,用css
    .listover50
    {
    width:50px;
    text-align:left;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    padding-left: 5px;
    }
    *.cs
    =--------
        protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                HyperLink link = (HyperLink)e.Row.Cells[*].Controls[0];
                e.Row.Cells[*].Text = "<div class=\"listover50\"><a href='" + link.NavigateUrl + "'>" + link.Text + "</a></div>";
            }
        }
      

  11.   

    (Eval("----").Tostring().Length > 8)?(Eval("----").Tostring().SubString(0,8)+"..."):
    Eval("----")这个怎么用?可以写下具体代码吗?我是这样写的,结果出错了
    DataBinder.Eval(Container, "DataItem.newsTitle", "(Eval({0}).Tostring().Length>25)?(Eval({0}).Tostring().SubString(0,25)+"..."):
    Eval({0})")
    ======
    报错:
    编译错误 
    说明: 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。 编译器错误信息: CS1010: 常数中有换行符源错误: 行 119:<asp:TemplateColumn>
    行 120:<ItemTemplate>
    行 121:<asp:HyperLink id=HyperLink1 runat="server" Text='<%# DataBinder.Eval(Container,"DataItem.newsTitle","(Eval({0}).Tostring().Length>25)?(Eval({0}).Tostring().SubString(0,25)+"..."):&#13;&#10;Eval({0})") %>' NavigateUrl='<%# DataBinder.Eval(Container,"DataItem.autoId","morenew.aspx?id={0}") %>'></asp:HyperLink>
    行 122:</ItemTemplate>
    行 123:</asp:TemplateColumn>
     
      

  12.   

    结贴了我换成了模板列,里面放了一个hyperlink.下面是我写的(受了各位的启发,cutStr25()是我自己写的函数)
    <asp:HyperLink id=HyperLink1 runat="server" Width="300px" Text='<%# cutStr25(DataBinder.Eval(Container, "DataItem.newsTitle").ToString()) %>' NavigateUrl='<%# DataBinder.Eval(Container,"DataItem.autoId","morenew.aspx?id={0}") %>'></asp:HyperLink>
    没办法,我就10分,不知道该怎么给,少了各位可不要见怪啊~~