2010-07-24 51 views
3

Im使用中繼器控件和數據綁定器將數據庫中的數據顯示到我的網站。 例如:DataBinder.Eval方法(容器,「DataItem.title」)Databinder.Eval和子字符串

有時文本太長 通常我使用的串顯示在長度優選字符串。 但是,如何使用數據綁定器 如果文本太長(> 20個字符),我想截斷它並留下三個點。 如何做到這一點?

回答

2

我建議的擴展方法做繁重,爲了使標記儘可能簡單:

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

如果您使用的是ASP.net Repeater控件中的烘焙,那麼一個答案就是處理Repeater.ItemDataBound事件。如果是另一個第三方,中繼器控制,那麼它可能會暴露類似的事件,您可以處理以實現相同的效果。

然後,您可以將傳遞給DataBinder.Eval的文本修剪爲所需字符的數量,並將一些省略號加到末尾。

+0

此結合該標記對於某些代碼非常緊密,可能需要在多個頁面的若干位置重複該標記。我希望儘可能使用聲明式方法。 – driis 2010-07-24 11:06:23