如何在asp.net中正确检查concatenated string
的长度?
如果Eval("FirstName")
和Eval("LastName")
的总长度超过21,我想缩短字符串并在末尾添加“...”。
<span id="userNameText">
<%if (string.Concat(Eval("FirstName"), " ", Eval("LastName")).ToString().Length > 21)
{
string.Concat(Eval("FirstName"), " ", Eval("LastName")).ToString().PadRight(19).Substring(0, 19).TrimEnd() + "...";
}
else
{
string.Concat(Eval("FirstName"), " ", Eval("LastName"));
}
%>
</span>
答案 0 :(得分:1)
您可以使用辅助方法来完成此任务......
public static string Truncate(string source, int length)
{
if (source.Length > length)
{
source = String.Concat(source.Substring(0, length), " ...");
}
return source;
}
<span id="userNameText">
<%= Truncate(string.Concat(Eval("FirstName"), " ", Eval("LastName")).ToString(), 21) %>
</span>
https://codereview.stackexchange.com/questions/71148/truncate-string-method
答案 1 :(得分:0)
你不能在Eval中使用if else,而是可以在c#中使用三元运算符(?:)
<span id="userNameText">
<%# (string.Concat(Eval("FirstName"), " ", Eval("LastName")).ToString().Length > 21) ? string.Concat(Eval("FirstName"), " ", Eval("LastName")).ToString().PadRight(19).Substring(0,19).TrimEnd() + "..." : string.Concat(Eval("FirstName"), " ", Eval("LastName")) %>
</span>