public static string getLeftString(string str)
{
string strTemp = str;
if(str.Length> 11)
strTemp = str.Substring(0,11);
return strTemp; }

解决方案 »

  1.   

    在.cs文件中把这段东西写成一个函数
    然后在aspx页面调用
    函数里加上判断
    if(YourString.Length >= 11)
      

  2.   

    <%# DataBinder.Eval(Container.DataItem,"标题").ToString().Replace("\n","").Replace("<","&lt;").Replace(">","&gt").Replace("\r","<br>").Replace(" ","&nbsp;").str.PadRight(12,' ').Substring(0,11) %>
      

  3.   

    我试过以:
    <%# DataBinder.Eval(Container.DataItem,"标题").ToString().Replace("\n","").Replace("<","&lt;").Replace(">","&gt").Replace("\r","<br>").Replace(" ","&nbsp;").str.PadRight(12,' ').Substring(0,11) %>
      

  4.   

    /// <summary>
    /// 截取字符串
    /// </summary>
    protected string SubStr(string str,int begin,int length)
         {
    return str.Length > length ? str.Substring(0,length) + "..." : str;
          }
          <%# SubStr(container.dataitem("销售信息").ToString(),0,20) %> public string GetSub(object obj)
    {
    string str=obj.ToString();
    if(str.Length<=22) return str;
    return str.Substring(0,22)+"...";
    }      <%# GetSub(Databinder(Container.DataItem,"a_title"))%>
      

  5.   

    同意joffre(霞飞)
     在后台代码中写个函数
     首先多字符串的长度进行判断
      然后再操作
      

  6.   

    大家都没有考虑,如果字符串为null呢?if(YourString&&YourString.Length >= 11)才是正确的。
      

  7.   

    同意
    if(YourString&&YourString.Length >= 11)
      

  8.   

    <%# DataBinder.Eval(Container.DataItem,"标题").ToString().Replace("\n","").Replace("<","&lt;").Replace(">","&gt").Replace("\r","<br>").Replace(" ","&nbsp;").str.PadRight(12,' ').Substring(0,11) %>
    这个方法出错:
    编译器错误信息: CS0117: “string”并不包含对“str”的定义
      

  9.   

    如果你是用C#的话,可以用条件表达式,我也经常处理这个问题
    例如,要根据STR的长度是否超过11个为例来显示,如果大于11个则截短,如果小于11个字符,则原样显示,我是按下面的方法做的(str.Length>11?:str.Substring(0,11)+"...":str
    即可
      

  10.   

    heroman1979(网络虫子):
    谢谢你(str.Length>11?:str.Substring(0,11)+"...":str要怎么用啊
      

  11.   

    定义如下函数:
    private string ProcessString(string str)
    {
      string s
      if(s == null) s = "&nbsp;";
      s = str.ToString().Replace("\n","").Replace("<","&lt;").Replace(">","&gt").Replace("\r","<br>").Replace(" ","&nbsp;");
      if(s.Length <= 11)
         return s;
      else
         return s.SubString(0,11) + '...';
    }将标记改为
    <%# ProcessString(DataBinder.Eval(Container.DataItem,"标题")) %>
      

  12.   

    可是我显示的是一个repeater中的数据啊,函数要写在哪里啊?aspx.cs:public void bindinfo()
    {
       string sql = "select top 6 * from Rczx_Info where Category = 001";
       DataSet ds = newdata.dbbind(sql);   this.Repeater1.DataSource = ds.Tables[0].DefaultView;
       this.Repeater1.DataBind();
    }aspx:<asp:Repeater id="Repeater1" runat="server">
       <ItemTemplate>
        <tr>
            <td>
                     <%# DataBinder.Eval(Container.DataItem,"标题") %>
            </td>
        </tr>
      </ItemTemplate>
    </asp:Repeater>
      

  13.   

    string strTemp = str;
    if(str.Length> 11)
    strTemp = str.Substring(0,11);
    return strTemp
      

  14.   

    string strTemp = str;
    if(str.Length> 11)
    strTemp = str.Substring(0,11);
    return strTemp
    写在什么地方?
      

  15.   

    可是我显示的是一个repeater中的数据啊,函数要写在哪里啊?aspx.cs:public void bindinfo()
    {
       string sql = "select top 6 * from Rczx_Info where Category = 001";
       DataSet ds = newdata.dbbind(sql);   this.Repeater1.DataSource = ds.Tables[0].DefaultView;
       this.Repeater1.DataBind();
    }aspx:<asp:Repeater id="Repeater1" runat="server">
       <ItemTemplate>
        <tr>
            <td>
                     <%# DataBinder.Eval(Container.DataItem,"标题") %>
            </td>
        </tr>
      </ItemTemplate>
    </asp:Repeater>
      

  16.   

    <%# 函数名 (DataBinder.Eval(Container.DataItem,"标题")) %>
      

  17.   

    请参考:
    http://dotnet.mblogger.cn/qiuji/posts/1869.aspx
      

  18.   

    DataBinder.Eval(Container.DataItem,"标题").ToString().Lengh>11?DataBinder.Eval(Container.DataItem,"标题").ToString().Replace("\n","").Replace("<","&lt;").Replace(">","&gt").Replace("\r","<br>").Replace(" ","&nbsp;").Substring(0,11):DataBinder.Eval(Container.DataItem,"标题").ToString()
    即可,另外,尽量不要用EVAL
    在页面顶部加上
    <%@ Import Namespace="System.Data" %>
    然后使用下面的语句((DataRowView)(Container.DataItem))["标题"].ToString().Lengh>11?((DataRowView)(Container.DataItem))["标题"].ToString().Replace("\n","").Replace("<","&lt;").Replace(">","&gt").Replace("\r","<br>").Replace(" ","&nbsp;").Substring(0,11):((DataRowView)(Container.DataItem))["标题"]
      

  19.   

    在C#中,个人认为条件表达式是很强的东西,很有用,多研究一下它吧
    至于绑定,像databinder.eval这种后期绑定方式,优点是可以在绑定时格式化数据,但是如果只是单纯显示,还是尽量避免使用
    一般来说,使用绑定的控件,其中每一个子项,都是一个DATAROWVIEW对象,因此,可以转换每一个DATAITEM并对数据进行访问
    详细的说明可以看VS.NET2003中帮助,.NETFRAMEWORK,参考,类库,关于DATAROWVIEW一项
      

  20.   

    heroman1979(网络虫子):
    谢谢你,不过,有错啊?
    编译器错误信息: CS0117: “string”并不包含对“Lengh”的定义
      

  21.   

    Length
    请先校正你的语法问题
      

  22.   

    用SQL语句SELECT时就可以截取了
      

  23.   

    <%#DataBinder.Eval(Container.DataItem,"标题").ToString().Lengh>11?DataBinder.Eval(Container.DataItem,"标题").ToString().Replace("\n","").Replace("<","&lt;").Replace(">","&gt").Replace("\r","<br>").Replace(" ","&nbsp;").Substring(0,11):DataBinder.Eval(Container.DataItem,"标题").ToString()%>替换掉你原来的部分