我在datalist中包含linkbutton按钮作为链接,我bind后怎么截取linkbutton的text值呢?以下是我的代码老是提示“索引和长度必须引用该字符串内的位置。
参数名: length”                      这个错误,代码如下:
      protected void dlnews_ItemDataBound(object sender, DataListItemEventArgs e)
        {
          if (((LinkButton)e.Item.Controls[0].FindControl("lbtntitle")).Text.Length>5)
           {
              ((LinkButton)e.Item.Controls[0].FindControl("lbtntitle")).Text = ((LinkButton)e.Item.Controls[0].FindControl("lbtntitle")).Text.Substring(0, 5) + "...";
               
            }
        }

解决方案 »

  1.   

    检查你的
    ((LinkButton)e.Item.Controls[0].FindControl("lbtntitle")).Text这个文本小于5
      

  2.   

    if (((LinkButton)e.Item.Controls[0].FindControl("lbtntitle")).Text.Length>5)
    检查下判断
      

  3.   

    要先判断字符串的长度,如果没有超过5的长度就不处理
    /// <summary>
            /// 截断长字符串
            /// </summary>
            /// <param name="str">原始字符串</param>
            /// <param name="length">字符串保留长度</param>
            /// <returns>处理后的字符串</returns>
            public static string CutLongString(string str, int length)
            {
                if (str.Length <= length)
                {
                    return str;
                }
                return str.Substring(0, length) + "...";
            }
     
      

  4.   

    LinkButton)e.Item.Controls[0].FindControl("lbtntitle")).Text必须非null
      

  5.   

    return str.Length > count ? str.Substring(0, count) : str;
      

  6.   

    本帖最后由 amandag 于 2011-03-22 10:20:25 编辑
      

  7.   

    +1
    判断length之前,再判断一下null
      

  8.   

    如果只是做 链接的话,建议用 hyperlink