我有一个遗留解决方案,其中所有DataSource
都在所有.aspx页面的标记中定义。我遇到的问题是DataSource
多次实例化,因为它在页面中使用,控制...我想要的是让NInject来处理DataSource
的实例化所以这不是不会发生。我已经完成了那部分工作,但是当在代码隐藏中而不是在标记中定义DataSource
时Page
属性未在DataSource
上设置,是否有人知道为什么?
一个简单的解决方案是在基类或类似物中设置Page
属性,但我确实认为该属性应该存在并想知道原因。
答案 0 :(得分:1)
设置后,您必须致电DataBind()
。
WebControl1.DataSource = something;
WebControl1.DataBind();
答案 1 :(得分:0)
它可能与页面生命周期中实例化的时间点有关吗?你能监控(调试)后面代码中的实例化吗?您在后面的代码中使用了哪个回调?如果您使用后面的控件代码,则可能尚未设置Page属性。因此,选择稍后的回调 - 将控件添加到某个页面之后。