首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DataTable.Select as DataSource of DataList

DataTable.Select as DataSource of DataList
EN

Stack Overflow用户
提问于 2012-04-03 17:17:01
回答 2查看 5.5K关注 0票数 1

我正在尝试过滤我的数据源中的数据,该数据源以datalist格式打印。我知道如何使用datalist,这是没有问题的。问题在于过滤。

我试过这个:

代码语言:javascript
复制
DataSet ds = (DataSet)Application["Products"];
DataSet newDS = new DataSet();
newDS.Tables.Add("products");

DataRow[] DR = ds.Tables[0].Select("CategoryID='" + this.CategoryID + "'");
for (int i = 0; i < DR.Length; i++)
    newDS.Tables[0].ImportRow(DR[i]);

PagedDataSource PDS = new PagedDataSource();
PDS.DataSource = newDS.Tables[0].DefaultView;
PDS.AllowPaging = true;
PDS.PageSize = 9;
PDS.CurrentPageIndex = CurrentPage;

this.DataList_Products.DataSource = PDS;
this.DataList_Products.DataBind();

在那之后,我收到了这个问题:

DataBinding:“System.Data.DataRowView”不包含名为“ProductID”.的属性

我确实有一个名为ProductID的属性,如何解决这个问题?

EN

回答 2

Stack Overflow用户

发布于 2012-04-03 17:57:48

也许我遗漏了什么,但看起来你的代码比你需要的要多。此外,您还应该利用LINQ实现以下功能:

代码语言:javascript
复制
this.DataList_Products.DataSource = ds.Tables[0].AsEnumerable().Where(r => r.Field<int>("CategoryID") == this.CategoryID).AsDataView().ToTable();
this.DataList_Products.DataBind();
票数 1
EN

Stack Overflow用户

发布于 2012-04-03 17:22:52

新的dataset (及其datatable)没有原始数据集的结构。

代码语言:javascript
复制
DataSet ds = (DataSet)Application["Products"];
DataSet newDS = new DataSet();
DataTable newTable = ds.Tables[0].Clone();//this copies the structure
newDS.Tables.Add(newTable);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9998188

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档