如何复制包含来自数据库的数据的 ASP .NET 列表视图

本文关键字:数据 数据库 ASP NET 视图 列表 何复制 复制 包含 | 更新日期: 2023-09-27 18:33:41

>我目前正在开发一个Web应用程序,该应用程序使用不同的约束多次查询一个数据库表。我正在使用ASP .NET 3.5 ListView。我有大约 10 个不同的列表视图。有没有办法让我只查询整个表一次,然后将它们分离到单独的表中到 ASP .NET 列表视图中?

有没有办法利用一个查询并输出到多个 ASP .NET 列表视图?或者有没有办法使用 1 个 SQL 数据源,并将其与 2 个列表视图一起使用?

如果无法做到这一点,我是否可以将 ASP .NET 列表视图复制到另一个 ASP .NET 列表视图?我试过这段代码,但出现错误:

         private void CopySelectedItems(ListView source, ListView target)
        {
           foreach (ListViewItem item in source.SelectedItems)
           {
               target.Items.Add((ListViewItem)item.Clone());
           }
        } 

错误是:

错误 1 "System.Web.UI.WebControls.ListView"不包含"SelectedItems"的定义,并且找不到接受类型为"System.Web.UI.WebControls.ListView"的第一个参数的扩展方法"SelectedItems"(是否缺少 using 指令或程序集引用?

错误 2 "System.Web.UI.WebControls.ListViewItem"不包含"克隆"的定义,并且找不到接受类型为"System.Web.UI.WebControls.ListViewItem"的第一个参数的扩展方法"克隆"(是否缺少 using 指令或程序集引用?

错误 3 "System.Collections.Generic.ICollection.Add(System.Web.UI.WebControls.ListViewDataItem("的最佳重载方法匹配有一些无效参数

错误 4 参数"1":无法从"System.Web.UI.WebControls.ListViewItem"转换为"System.Web.UI.WebControls.ListViewDataItem">

如何复制包含来自数据库的数据的 ASP .NET 列表视图

可以将

单个数据库查询加载到列表中,然后使用列表中的 Where 扩展方法绑定到各个ListView控件。

例如,假设数据加载到具有字符串属性 MyProperty1 的类 MyDataClass 中:

List<MyDataClass> myList = MyDataAccessLayer.GetFromDatabase();
ListView1.DataSource = myList.Where(item => item.MyProperty1 == "value1");
ListView1.DataBind();
...
ListView10.DataSource = myList.Where(item => item.MyProperty1 == "value10");
ListView10.DataBind();