我是用DataGrid绑定数据库的比如数据表中有个字段为title我想实现这样的状态:当title的长度大于15的时候我就让它输出15个在后面加"..."反之,则原样输出不知道怎么解决,找了很多函数,用不上,帮帮我啊,谢谢

解决方案 »

  1.   

    1.前台
      <asp:TemplateColumn>
    <ItemStyle HorizontalAlign="Left" Wrap="true"></ItemStyle>
    <ItemTemplate>
    <asp:Label runat="server" Text='<%# GetDemand(DataBinder.Eval(Container, "DataItem.demand").ToString())%>'>
    </asp:Label>
    </ItemTemplate>
     </asp:TemplateColumn>
    2.后台
    protected string GetDemand(string strDemand)
    {
    string subDemand = strDemand;

    //取前10个字串(如果需求长度小于十个,则取原串) if(subDemand.Length > 15)     
    {
    subDemand = subDemand.Substring(0,15) + "...";
    }
    string titleDemand = strDemand.Replace("<br>","\r\n").Replace("&nbsp;"," ");
    string HtmlTitle = "<A title=\"" + titleDemand + "\" >" + subDemand + "</A>"; return HtmlTitle;  
    }
      

  2.   

    <asp:Label runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.demand").ToString().Length>15?DataBinder.Eval(Container, "DataItem.demand").ToString().SubString(0,15) + "...":DataBinder.Eval(Container, "DataItem.demand")%>'>
      

  3.   

    <asp:Label runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.demand").ToString().Length>15?DataBinder.Eval(Container, "DataItem.demand").ToString().SubString(0,15) + "...":DataBinder.Eval(Container, "DataItem.demand")%>'>
      

  4.   

    在绑定页面如下写
    <%# myCutString(Convert.ToString(DataBinder.Eval(Container, "DataItem.strbrc_type"))) %>在后台写个函数如下:
    /// <summary>
    /// 截取以字节计算的文本长度
    /// </summary>
    /// <param name="msytr">要截取的文本串</param>
    /// <param name="intLength">要截取的字节数</param>
    /// <returns>返回截取的字节数</returns>
    public string myCutString(string mystr,int intLength)
    {
      Byte[] myByte = System.Text.Encoding.Default.GetBytes(mystr);
      string str = "";
      if(myByte.Length < intLength)
      {
        str = mystr;
      }
      else
      {
        str = System.Text.Encoding.Default.GetString(myByte,0,intLength);
        switch(System.Text.Encoding.Default.GetByteCount(mystr) - intLength)
        {
          case 1:
            str += "..";
            break;
          case -1:
            str += "...";
            break;
          default:
            break;
        }
      }
      return(str);
    }
      

  5.   

    在绑定页面如下写
    <%# myCutString(Convert.ToString(DataBinder.Eval(Container, "DataItem.strbrc_type"))) %>
    看了这句,我又提高了一点,今天算是没白活了