如何在aspx页面中对列表<string []>绑定操作逗号分隔的字符串?</string []>

时间:2013-10-16 17:42:41

标签: asp.net data-binding

我在aspx页面中有一个转发器控件,我将它绑定到list<string[]>如果我想在字符串数组的索引10处显示转发器项,我会执行以下操作;

<%# ((string[])(Container.DataItem))[10] %>

哪种方法正常且符合预期。

现在在<%# ((string[])(Container.DataItem))[18] %>中,它返回逗号分隔的字符串“item1, 1, item2, 2, item3, 3”,我希望能够显示和控制字符串中的每个项目。 我尝试使用

<% foreach (var v in (((string[])(Container.DataItem))[18]).Split(','))
 {
  //do something
 }

%>

但我会收到此错误:当前上下文中不存在“容器”这个名称

我尝试使用

<%# foreach (var v in (((string[])(Container.DataItem))[18]).Split(','))
 {
  //do something
 }

%>

但是我会收到以下错误:无效的表达式术语'foreach'

那么,我怎么能够在能够操纵数据的同时绑定逗号分隔的sting?

1 个答案:

答案 0 :(得分:1)

如果你想对数据做些什么,你想让一个方法来处理它。

这是一个例子 -

<asp:Repeater ID="Repeater1" runat="server">
    <ItemTemplate>
         <%# DoSomething(((string[])(Container.DataItem))[18]) %>
    </ItemTemplate>
</asp:Repeater>

protected string DoSomething(object value)
{
    var sb = new StringBuilder();
    foreach (var item in value.ToString().Split(','))
    {
        sb.Append(item + " - ");
    }
    return sb.ToString();
}