2009-06-17 13 views
0

這是我的情況。我有一個Repeater綁定到一個List,它正在渲染Table行。我正在使用<%#DataBinder.Eval(Container.DataItem,「SomeStringProperty」)%>來顯示我的數據。問題是,當SomeStringProperty爲null,string.Empty或「」(一些空格)時,我的TD邊框不會呈現。它彷彿空空蕩蕩,相當難看。我不知道如何處理這個。谷歌搜索沒有屈服於答案。也許這裏有人可以告訴我。謝謝..當ASP.NET Repeater呈現Binder.Eval Table TD時,我該如何處理null或string.Empty?

回答

3

我會用一個Literal控件替換對DataBinder.Eval的調用並處理Repeater的ItemDataBound事件(OnItemDataBound)。在處理程序中,檢查該項是否爲空,並返回非破壞空間&nbsp;如果是。

你也可以換行評估和演示的方法調用同樣的效果:

<%# CheckNull(Eval("SomeStringProperty")) %> 
在後面的代碼

protected string CheckNull(object value) 
{ 
    return string.IsNullOrEmpty(value) ? "SEE BELOW" : value.ToString(); 
} 

我不能得到這個正確顯示 - 見BELOW應替換爲&nbsp;

除了string.IsNullOrEmpty(如果它來自數據庫)之外,您可能需要將值與System.DBNull.Value進行比較。

+0

我試過你的建議掛鉤我的Repeater的ItemDataBound事件。即使當我用string替換string.Empty/null時,我的仍然是空的。如何/在哪裏應該掛鉤這個功能? – Joel 2009-07-28 22:30:54

相關問題