读书人

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

发布时间: 2012-04-20 15:27:03 作者: rapoo

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) %>

读书人网 >asp.net

热点推荐