我綁定了一些要控制的數據,但要將特定字段的字符數限制爲30個第一個字符。檢索綁定值的子字符串
我想這樣做,如果可能的話,在aspx頁面上。
我嘗試這樣做:
Text='<%# String.Format("{0}", Eval("Title")).Substring(0,30) %> '
但得到這個錯誤:
Index and length must refer to a location within the string. Parameter name: length
我綁定了一些要控制的數據,但要將特定字段的字符數限制爲30個第一個字符。檢索綁定值的子字符串
我想這樣做,如果可能的話,在aspx頁面上。
我嘗試這樣做:
Text='<%# String.Format("{0}", Eval("Title")).Substring(0,30) %> '
但得到這個錯誤:
Index and length must refer to a location within the string. Parameter name: length
正如西蒙說,你就當字符串少於30個字符,遇到這個錯誤。
你可以在頁面中寫一個受保護的方法 - 從ASPX代碼
protected string GetSubstring(string str, int length)
{
return str.Length > length ? str.Substring(0, length) : str;
}
這樣稱呼它 -
Text='<%# String.Format("{0}", GetSubstring(Eval("Title").ToString(), 30) %>'
當你的字符串是不是至少30個字符長,就會出現此錯誤。你應該先檢查它,然後切斷你不需要的字符,就像你在代碼片段中做的那樣。
String s = "hello";
if(s.Length > 30)
{
s.Substring(0,30);
}
而且在同一行:
s.Length > 30? s.Substring(0,30) : s;
子串需要開始索引和長度。所以你應該確保字符串不小於30個字符,否則會給出錯誤。
可以使它更好。 protected string GetSubstring(object obj,int length) string str = obj.ToString(); return str.Length> length? str.Substring(0,length):str; } ---- Text ='<%#GetSubstring(Eval(「Title」),30)%>' 你說什麼? – 2010-05-11 05:27:44