将SqlDataSource绑定到GridView:通过ID绑定和通过设置DataSource有什么区别

时间:2016-12-01 11:47:26

标签: asp.net gridview webforms sqldatasource

我想将SqlDataSource绑定到GridView以查看和编辑数据库记录。

没什么大不了的(我想)。

然而,

之间似乎存在很大的概念差异
  • 通过' DataSourceID'绑定在aspx文件中声明性地使用GridView的属性
  • 通过设置'数据源'
  • 绑定
  • 中的代码 y

第一个,我可以通过声明一个额外的编辑按钮立即获得编辑功能,第二个,我根本无法将更新的值输入到数据库中。

这两者之间有什么区别,真的吗?

注意:我对代码作为答案并不是很感兴趣,而是更多关于差异的解释或手册。

1 个答案:

答案 0 :(得分:1)

GridView1.DataSourceID需要Datasource对象的id,通常是在页面上放置的SqlDataSource之类的数据源控件。

使用页面设计器时,您可以"连接"使用gridview上下文菜单将数据源添加到gridview。

或者可以通过编程方式设置,例如在Page_Load:

    GridView1.DataSourceID = SqlDataSource1.ID

Gridview支持许多数据源控件,您不仅限于SqlDataSource。

主要区别与绑定和页面生命周期有关。

当您指定GridView1.DataSourceID并假设控件可见时,数据绑定将在页面生命周期的Databind事件期间自动神奇地发生。

如果指定GridView1.DataSource数据绑定成为程序员的义务。在明确调用GridView1.DataBind()

之前,不会发生绑定

还有一件事

如果使用SqlDataSource,则会有一个名为CancelSelectOnNullParameter的漂亮小属性。这应该是不言自明的,它默认为TRUE。只是要注意一些事情,因为它在我早期引起了很多挫折。