简单的问题,我想.
很长一段时间,我在编程方式数据绑定ASP.NET控件时盲目地遵循(据称)常见模式.即:
gridView1.DataSource = someList;
gridView1.DataBind();
Run Code Online (Sandbox Code Playgroud)
但是,如果我通过DataSourceID属性将GridView设置为绑定到DataSource 控件,则不需要调用DataBind().即:
gridView1.DataSourceID = LinqDataSource1;
Run Code Online (Sandbox Code Playgroud)
足够了.
此外,如果您尝试在ASPX标记中设置DataSource属性,则会遇到以下问题:
您不能以声明方式设置DataSource属性.
我认为这些是相关的,但我仍然难以理解为什么DataBind()是必要的.DataSource和DataSourceID之间的区别是次要的 - 我可以理解那里发生的一些魔术.真正的问题是为什么DataSource propery setter不能自动导致数据绑定?是否有任何我们想要设置DataSource但不绑定它的场景?