繁体   English   中英

如何以编程方式将值添加到ASP.NET中的数据列表/数据源?

[英]How to add values programmatically to a datalist/datasource in ASP.NET?

我需要一种将值添加到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();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM