如何以编程方式将值添加到ASP.NET中的datalist / datasource?

我需要一种向DataList添加值的方法,这些方法不是来自DataList所连接的SQLDataSource。 这些值不一定在我的数据库中找到,但仍然需要显示在我已有的DataList中。

在我的页面上,我有这样的结构:

DataListA Hidden Field Label DataListB SQLDataSourceB SQLDataSourceA 

我正在寻找以编程方式向SQLDataSourceB添加条目(自定义条目)的方法,以便DataListB包含我需要在DataListB中显示的这些额外行。 我已经查看了Pre_Render事件和例子,例如在这里找到但我不需要更改条目,也不需要改变它们的样式。 我正在寻找添加自定义条目,有没有办法做到这一点?


编辑: DataListB显示的结果是“部门”,“代码”和“名称”。 这些都是展示学校课程。 即,典型的结果将是: ART 3000 Photography 。 我希望添加到DataListB的课程是自定义课程,其格式与上面的示例相同。 这背后的原因 – 如果我在DataListB中展示ART 3000 Photography ,我想展示SCI 1000 Biology而不是如果我没有展示ART 3000 Photography ,我会想要SCI 1100 Chemistry 。 这是一个很多案例,我需要能够检查我正在显示的课程(在页面加载之前)并更改我需要添加到DataListB的自定义类。

@ ethorn10我有两个主要需要将这些自定义课程添加到我的DataList。 第一种情况是针对一系列课程。 对于此范围内的表中显示的每个类,都会更改此池中需要的x个类数。 例如,假设我有一系列具有1000到3000的“代码”的类。此范围内应该(至少)显示在表中的类的限制是6.因此,(我实现了一些标签)排序,而不是数据主义者中的条目是必要的)我希望用户看到“在1000到3000之间的6个以上的类”。 对于显示的此范围内的每个课程,我希望“6”递减,因此如果在该范围内采用一个类,则显示/标签应显示为“在1000到3000之间的另外5个类”。

第二种情况类似于第一种情况,但不是包含1000到3000,而是有一个不同类的池。 因此它变为“你需要从这些类中增加2个类:1200,1350,2300等……”

您可以使用DataView获取SqlDataSource数据,然后将DataView转换为Datatable 。 之后,您可以将自定义数据作为Rows添加到DataTable

 DataView dv =(DataView)SqlDataSource1.Select(new DataSourceSelectArguments()); DataTable dt = dv.ToTable(); dt.Rows.Add(1, "item1", "item2", 3, "item4"); //the number of param should match the number of column you query returns GridView1.DataSource = dt; //binding the datatable to a gridview after adding customer record GridView1.DataBind();