与代码隐藏相比,在标记中声明DataSource时的区别?

时间:2011-01-13 09:12:54

标签: c# asp.net ninject

我有一个遗留解决方案,其中所有DataSource都在所有.aspx页面的标记中定义。我遇到的问题是DataSource多次实例化,因为它在页面中使用,控制...我想要的是让NInject来处理DataSource的实例化所以这不是不会发生。我已经完成了那部分工作,但是当在代码隐藏中而不是在标记中定义DataSourcePage属性未在DataSource上设置,是否有人知道为什么?

一个简单的解决方案是在基类或类似物中设置Page属性,但我确实认为该属性应该存在并想知道原因。

2 个答案:

答案 0 :(得分:1)

设置后,您必须致电DataBind()

WebControl1.DataSource = something;
WebControl1.DataBind();

答案 1 :(得分:0)

它可能与页面生命周期中实例化的时间点有关吗?你能监控(调试)后面代码中的实例化吗?您在后面的代码中使用了哪个回调?如果您使用后面的控件代码,则可能尚未设置Page属性。因此,选择稍后的回调 - 将控件添加到某个页面之后。