Im使用中繼器控件和數據綁定器將數據庫中的數據顯示到我的網站。 例如:DataBinder.Eval方法(容器,「DataItem.title」)Databinder.Eval和子字符串
有時文本太長 通常我使用的串顯示在長度優選字符串。 但是,如何使用數據綁定器 如果文本太長(> 20個字符),我想截斷它並留下三個點。 如何做到這一點?
Im使用中繼器控件和數據綁定器將數據庫中的數據顯示到我的網站。 例如:DataBinder.Eval方法(容器,「DataItem.title」)Databinder.Eval和子字符串
有時文本太長 通常我使用的串顯示在長度優選字符串。 但是,如何使用數據綁定器 如果文本太長(> 20個字符),我想截斷它並留下三個點。 如何做到這一點?
我建議的擴展方法做繁重,爲了使標記儘可能簡單:
public static string EvalTrimmed(this RepeaterItem container, string expression, int maxLength)
{
string value = DataBinder.Eval(container, expression) as string;
if (value != null)
return null;
if (value.Length > maxLength)
value = value.Substring(0,maxLength) + "...";
return value;
}
然後用它標記爲:
<%# Container.EvalTrimmed("DataItem.Title", 20) %>
如果您使用的是ASP.net Repeater控件中的烘焙,那麼一個答案就是處理Repeater.ItemDataBound
事件。如果是另一個第三方,中繼器控制,那麼它可能會暴露類似的事件,您可以處理以實現相同的效果。
然後,您可以將傳遞給DataBinder.Eval的文本修剪爲所需字符的數量,並將一些省略號加到末尾。
此結合該標記對於某些代碼非常緊密,可能需要在多個頁面的若干位置重複該標記。我希望儘可能使用聲明式方法。 – driis 2010-07-24 11:06:23