我知道你可以在代码隐藏中绑定,但如果你想在controls标签中声明它,我不太明白它是如何工作的。这是一个自定义集合。
我认为这只是
Datasource="<%# MyCollection %>"
MyCollection是后面代码中类的公开属性吗?
MyCollection{ get{ return _MyCollection;}}
这样的事情。但它似乎没有这种方式,所以我不能这样绑定,或者我错过了什么?
答案 0 :(得分:0)
澄清您使用的控件。但无论如何 - &lt;%#%&gt; - 只是说你想从数据绑定容器中提取数据。但在你的情况下不是这样(你没有外容器)。
要解决您在页面加载时需要的问题,只需指定
即可MyControl.Datasource = MyCollection
答案 1 :(得分:0)
无法以声明方式设置“DataSource”属性。是否真的有理由这样做而不是在后面的代码中绑定?
执行此操作的另一种方法是使用DataSourceID而不是DataSource以声明方式设置它,DataSourceID必须是IDataSource类型的控件的ID,如SqlDataSource。您需要创建一个实现此接口的自定义控件并将其作为数据源提供,但我再也看不到这样做的真正理由
答案 2 :(得分:0)
你应该能够做你所说的,是的。
http://support.microsoft.com/kb/307860
我认为你错过的是这个(引自上面的链接):
特定数据源之后 已确定并设定为 你必须在.aspx页面上的对象 将数据绑定到这些数据源。 您可以使用Page.DataBind或 Control.DataBind方法绑定 数据到数据源。
IIRC我认为你不必这样做,如果你想在数据绑定控件中有一个数据绑定控件 - 例如嵌套的中继器。在那种情况下,我认为设置DataSource已经足够了,但我可能会更正?
看看标题为“Page.DataBind()与Control.DataBind()”的部分。
另一页有一些例子在这里:
http://odetocode.com/articles/278.aspx