当前位置: 首页 > 知识库问答 >
问题:

将数据绑定到嵌套的ListView

暨曾笑
2023-03-14

我正在创建一个asp.net页面,允许用户跨多个数据库搜索。

如果找到匹配项,我希望在主ListView中返回数据库名称。然后,我想在相应的数据库名称下,在嵌套的ListView中显示与搜索条件匹配的所有公司。

e. g.搜索:公司

后果

数据库1名称

数据库2名称

数据库3名称

如何引用和填充嵌套的ListView?

共有1个答案

柳飞鸾
2023-03-14

可以使用父ListView OnItemDataBound事件,并绑定子ListView。

<asp:ListView ID="DatabaseListView" runat="server"
    OnItemDataBound="DatabaseListView_ItemDataBound">
    <ItemTemplate>
        <h1><%# Eval("Name") %></h1>
        <asp:ListView ID="CompanyListView" runat="server">
            <ItemTemplate>
                <p><%# Eval("Name") %></p>
            </ItemTemplate>
        </asp:ListView>
        <hr />
    </ItemTemplate>
</asp:ListView>
public class Database
{
    public string Name { get; set; }

    public IList<Company> Companies;

    public Database()
    {
        Companies = new List<Company>();
    }
}

public class Company
{
    public string Name { get; set; }
}

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        var databases = new List<Database>
        {
            new Database
            {
                Name = "Database 1 Name",
                Companies = new List<Company>
                {
                    new Company {Name = "123"},
                    new Company {Name = "Abc"}
                }
            },
            new Database
            {
                Name = "Database 2 Name",
                Companies = new List<Company> {new Company {Name = "Xyz"}}
            },
            new Database
            {
                Name = "Database 3 Name",
                Companies = new List<Company> {new Company {Name = "Test"}}
            },
        };

        DatabaseListView.DataSource = databases;
        DatabaseListView.DataBind();
    }
}

protected void DatabaseListView_ItemDataBound(object sender, ListViewItemEventArgs e)
{
    if (e.Item.ItemType == ListViewItemType.DataItem)
    {
        var database = e.Item.DataItem as Database;
        var companyListView = e.Item.FindControl("CompanyListView") as ListView;

        companyListView.DataSource = database.Companies;
        companyListView.DataBind();
    }
}
 类似资料:
  • 问题内容: 动物是一种动物。猫和狗都是。 现在,我正在尝试并希望使用“类型”来获取子类。 但是类型字段不在列之内。 提前致谢 :) 问题是类型不符合动物{}。 如果类型在动物{}中,则代码将起作用。但这不是t): 问题答案: 可能,但是键入JSON应该看起来像(完全限定名称) Abstract类 子类 现在,对于json 这将是实例 和 这将是例如 编辑 在这种情况下使用。例 动物类 对于 它运作

  • 如何将MVVM值绑定到dropdownlist?下面的输入元素运行良好

  • 问题内容: 我正在尝试通过API将bigquery数据导出到Google云存储桶。我从这里https://cloud.google.com/bigquery/docs/exporting- data 修改了代码段 由于数据是嵌套的,因此无法与“ JSON”交换格式,因此无法将其与“ gs://mybucket/export_*.json”导出为CSV和gcsUrl。但是错误消息告诉我以下问题: 有

  • 我的控制器中有以下内容: 为: 我得到以下错误: 请注意,我已经安装了Jackson(来自这个问题:Jackson Databind类路径问题)。 此外,我可以很好地使用,但是当我尝试使用时,它就会给我带来这个错误。 如何使@RequestBody成为UserEntity?

  • 我有以下表单,我想把一些对象传递给内部表单,以便在编辑时用数据填充它们: 我用以下代码实例化: 一旦我通过构造函数得到包含所需数据的对象,有人知道我如何将该对象绑定到表单吗? 感谢先进!

  • 我正在将Firebase实时数据库迁移到Firestore,并且我有嵌套数据 我有嵌套数据,我想从中创建一个集合。 示例: 我想从FiRecovery中的嵌套数组创建一个子集合。因此我尝试了以下方法(Cloud Function): 但我得到了错误: 您有没有想过以最好的方式迁移嵌套的子数据? 雷诺更新