如何在ListView中绑定特定的嵌套列表值

时间:2017-03-29 16:47:13

标签: c# asp.net listview

我有一个我已经反序列化的json。我有一个绑定到rootobject类的listview。

public class Thumbnails
{
    public string mini { get; set; }
    public string webimage { get; set; }

}

public class RootObject
{
    public string userCreated { get; set; }
    public string id { get; set; }
    public string name { get; set; }
    public string description { get; set; }
    public List<string> property_product { get; set; }
    public Thumbnails thumbnails { get; set; }
}

我已将列表绑定到列表视图

private void BindListView()
{
    lstView.DataSource = myList;
    lstView.DataBind();
}

但我需要只显示Thumbnails的webimage值。我对如何做到这一点感到茫然。在我尝试添加webimage之前,它会显示其他内容。

<ItemTemplate>
    <td>
        <%# Eval("webimage") %>  
    </td>
    <td>
        <%# Eval("id") %>
    </td>
    <td>
        <%# Eval("name") %>
    </td>
    <td>
        <%# Eval("property_product") %>
    </td>
</ItemTemplate>

2 个答案:

答案 0 :(得分:1)

点符号应该有帮助:

<%# Eval("thumbnails.webimage") %>

或者您可以将对象强制转换为缩略图并使用其属性:

<%# ((Thumbnails)Eval("thumbnails")).webimage %>

当然要注意两种情况下的空值。

答案 1 :(得分:1)

您提供嵌套类的路径。只要您不打算使用null等,就不需要检查.ToString()

<%# Eval("thumbnails.webimage") %>