asp.net – 为什么DataBind()方法是必要的?

简单的问题,我猜。

很长一段时间,我以盲目的方式遵循(假定)常用的模式,以编程方式数据绑定我的ASP.NET控件。即:

gridView1.DataSource = someList;
gridView1.DataBind();

但是,如果我将GridView设置为通过DataSourceID属性绑定到DataSource控件,则调用DataBind()是不必要的。即:

gridView1.DataSourceID = LinqDataSource1;

足够了。

此外,如果您尝试在ASPX标记中设置DataSource属性,则会遇到以下问题:

You cannot set the DataSource property declaratively.

我假设这些都是相关的,但我仍然认为DataBind()是必要的。 DataSource和DataSourceID之间的区别是次要的 – 我可以理解那里发生的一些魔法。真正的问题是为什么DataSource属性设置器不会自动导致数据绑定?有没有我们想要设置DataSource但不绑定的场景?

解决方法

在ASP.Net中,通常重要的是在页面生命周期中的特定点可以使用某些数据,而不是在之前。例如,您可能需要提前绑定到下拉列表,以便稍后在该列表中设置所选索引。或者您可能希望稍等一下来绑定该大型网格以减少持续该连接的时间数量/将数据保留在内存中。

显式调用.DataBind()方法可以支持频谱两端的场景。

相关文章

这篇文章主要讲解了“WPF如何实现带筛选功能的DataGrid”,文...
本篇内容介绍了“基于WPF如何实现3D画廊动画效果”的有关知识...
Some samples are below for ASP.Net web form controls:(fr...
问题描述: 对于未定义为 System.String 的列,唯一有效的值...
最近用到了CalendarExtender,结果不知道为什么发生了错位,...
ASP.NET 2.0 page lifecyle ASP.NET 2.0 event sequence cha...