首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

repeater 页面截取控制字符长度,该如何处理

2012-04-20 
repeater 页面截取控制字符长度后台:public string GetString(string str, int length){if (str.Length

repeater 页面截取控制字符长度
后台:
  public string GetString(string str, int length)
  {
  if (str.Length > length)
  return str = str.Substring(0, length);
  else
  return str;
  }


前台:
 <asp:Repeater runat="server" ID="repeater_list" OnItemDataBound="repeater_list_ItemDataBound">
  <ItemTemplate>
  <tr onmouseover='setcolorup(this);' onmouseout='setcolordown(this);' onclick="rowcheck(this)"
  ondblclick="document.location.href='fo01view.aspx?TeachId=<%#Eval("TECHACCEPT_ID")%>';">
  <td>
  <%#Eval("IDEN_STATE_NAME")%>
  </td>
  <td>
  <%#Eval("FINACE_STATE_NAME")%>
  </td>
  <td>
  <%#Eval("TECHACCEPT_NO")%>
  </td>
  <td>
  <%#Eval("FM_CITY")%>
  </td>
  <td>
  <%#Eval("TECHACCEPT_TYPE_NAME")%>
  </td>
  <td>
  <%#Eval("FM_TYPE")%>
  </td>
  <td>
  <%#Eval("FM_CLASS")%>
  </td>
  <td>
  <%#GetString(Eval("ARC_CONCLUSION").ToString(),5)%> 
  </td>
  <td>
  <%#Eval("ARC_NAME")%>
  </td>
  <td>
  <%#Eval("IDENT_MAIN")%>
  </td>
  <td>
  <%#Eval("ARC_ASS_NAME")%>
  </td>
  <td>
  <asp:LinkButton ID="LinkBtnDel" OnClientClick="return confirm('确定删除?')" OnClick="linkBtn_Del_Click"
  runat="server">删除</asp:LinkButton>
  </td>
  </tr>
  </ItemTemplate>
  </asp:Repeater>


<%#GetString(Eval("ARC_CONCLUSION").ToString(),5)%> 
提示未将对象引用到实例

[解决办法]
<%=GetString(Eval("ARC_CONCLUSION").ToString(),5)%>
用=号
[解决办法]

C# code
 public string GetString(string str, int length)            {                string returnStr = string.Empty;                if (!string.IsNullOrEmpty(str))                {                    if (str.Length > length)                        returnStr = str.Substring(0, length);                }                return returnStr;            }
------解决方案--------------------


或者你可以把那个方法放在Tools类里面。然后<%#Tools.GetString(Eval("ARC_CONCLUSION").ToString(),5)%>
就可以了。不过你写的那个方法要是static的
[解决办法]

Eval("ARC_CONCLUSION")
有空(null dbnull)值吧
[解决办法]
public string stringformat(string str,int n)
{
string temp = string.Empty;
if (System.Text.Encoding.Default.GetByteCount(str) <= n)//如果长度比需要的长度n小,返回原字符串
{
return str;
}
else //如果长度超过则截取,至于截取的长度可以自己设置,我这里写死了
{
int number = 0;
string st = string.Empty;
while (number < n)
{
st = str.Substring(0, 1);
temp += st;
str = str.Substring(1, str.Length - 1);
if (System.Text.Encoding.Default.GetByteCount(st) > 1) //判断字符所占字节数
{
number += 2;
}
else
{
number++;
}
}
return (temp + "...");
}
}

你用这个方法试下,可识别中西文字符
前台 <%# stringformat(Eval("ARC_CONCLUSION").ToString(),5) %>

热点排行