您如何在转发器中加入以逗号分隔的各个评估项目?

How do you join individual eval items separated by comma in a repeater?

我正在尝试使用逗号分隔符连接多个地址条目。 目前我有这段代码:

<%#DataBinder.Eval(Container,"DataItem.Address1")%>,
<%#DataBinder.Eval(Container,"DataItem.Address2")%>,
<%#DataBinder.Eval(Container,"DataItem.Address3")%>, 

此代码不检查空字符串,有时会输出如下内容:

Brown Lane West, , ,

我试过以下代码,但不正确:

<%#DataBinder.Eval(Container,"DataItem.Address1") ?? ", "%>

我也尝试过 null 检查,但它会重复我的地址

<%#String.IsNullOrEmpty(DataBinder.Eval(Container,"DataItem.Address1")) ? "" : DataBinder.Eval(Container,"DataItem.Address1") + ", "%>,

仅当 DataItem 值不为 null 时,预期结果应为在末尾添加逗号的输出

Examples:
Brown Lane West,
Unit 14/15 Bailygate Estate, South Bailygate,
Unit 13b, Hornbeam Park Oval, Hornbeam Park,

我会这样做:

Unit 
<%#(String.IsNullOrEmpty(Eval("Address1").ToString()) ? "" : Eval("Address1") + ",")%>
<%#(String.IsNullOrEmpty(Eval("Address2").ToString()) ? "" : Eval("Address2") + ",")%>
<%#(String.IsNullOrEmpty(Eval("Address3").ToString()) ? "" : Eval("Address3") + ",")%>

输出看起来像这样:

Unit 14/15, Bailygate Estate, South Bailygate,
Unit 13b, Hornbeam Park Oval, Hornbeam Park,
Unit 25, Something here,

或者如果您想更好地控制逗号:

<%#(String.IsNullOrEmpty(Eval("Address1").ToString()) ? "" : Eval("Address1"))%><%#(String.IsNullOrEmpty(Eval("Address2").ToString()) ? "" : ", ")%><%#(String.IsNullOrEmpty(Eval("Address2").ToString()) ? "" : Eval("Address2"))%><%#(String.IsNullOrEmpty(Eval("Address3").ToString()) ? "" : ", ")%><%#(String.IsNullOrEmpty(Eval("Address3").ToString()) ? "" : Eval("Address3") + ",")%>

希望对您有所帮助。