ASP.NET GridView SqlDatasource编程数据绑定排序

ASP.NET GridView SqlDatasource编程数据绑定排序,asp.net,Asp.net,我用两种不同的方式将SqlDatasource数据绑定到GridView 1) 在.aspx页面中声明SqlDatasource并将GridView上的DatasourceID属性设置为其id 2) 在代码隐藏中创建SqlDatasource并绑定到datasource属性 当我使用声明性方法(1)时,排序工作正常,无需我做任何额外的工作,但是如果我在代码中创建SqlDatasource并尝试进行排序,我会得到一个异常,称为“GridView”myGridView“激发了未处理的事件排序” 我假

我用两种不同的方式将SqlDatasource数据绑定到GridView

1) 在.aspx页面中声明SqlDatasource并将GridView上的DatasourceID属性设置为其id

2) 在代码隐藏中创建SqlDatasource并绑定到datasource属性

当我使用声明性方法(1)时,排序工作正常,无需我做任何额外的工作,但是如果我在代码中创建SqlDatasource并尝试进行排序,我会得到一个异常,称为“GridView”myGridView“激发了未处理的事件排序”


我假设在使用第一种方法时会出现某种额外的管道。有人知道datasourceid方法做什么而编程方法不做什么吗?如果可能的话,我想复制代码背后的逻辑。

GridView使用
数据源ID
属性检查它是否为数据绑定,如果不是,则必须处理
排序事件来进行排序

您是否尝试过将通过编程创建的
SqlDatasource
添加到页面的控件层次结构中(例如添加到
占位符中),然后使用
DataSourceId
属性将
GridView
绑定到它?我没有试过这个,但它应该会起作用