如果检查DataBound控件?

时间:2015-03-31 14:08:08

标签: c# asp.net

如何在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>

2 个答案:

答案 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>