我可以迭代一个数据源吗?

时间:2009-09-07 20:16:27

标签: c# asp.net user-controls

我有一个控件,我想通过它的数据源进行交互,这可能吗?

控件绑定到转发器,但我还想使用.ascx控件页面顶部的内联代码遍历项目。

这可能吗?

更新

我绑定到转发器,绑定到转发器的东西是List集合。

我试过了:

myRepeater.DataSource

我没有通过intellisense得到任何东西,而且List<UserPRofile>的投射也不起作用。

2 个答案:

答案 0 :(得分:1)

当然,只需引用控件的DataSource属性,它将返回您最初绑定到控件的任何内容。您需要将返回值强制转换为适当的类型。

var dataSource = (List<MyClass>)myRepeater.DataSource; // your control

请记住,如果您计划对其进行更改并希望它反映在控件中,那么您应该使用支持双向绑定的适当数据源,例如BindList

答案 1 :(得分:1)

据我所知,您想要访问位于用户控件内的转发器的数据源。我建议您将数据源公开为属性,并使用它来循环用户控件以及绑定转发器。

您也可以使用Repeater.Items集合并将每个绑定行作为RepeaterItem实例。

foreach (RepeaterItem repeaterItem in myRepeater.Items)
{
    lblResult.Text += " " + repeaterItem.Text;
}