我有一个 GridView
,它已经从 SqlDataSource
获取一些数据。
GridView
允许排序、分页、选择。
现在,当我单击按钮
时,我将使用新查询创建一个新的DataSource
,并分配新的DataSource
到这个网格,然后我使用 .DataBind()
更新这个网格,但之后,我无法对任何列进行排序。
动态创建新数据源
SqlDataSource data = new SqlDataSource();
data.ConnectionString = SqlDataSource1.ConnectionString;
data.ProviderName = SqlDataSource1.ProviderName;
data.SelectCommand = "SELECT * FROM USERS";
GridView2.DataSourceID = "";
GridView2.DataSource = data;
GridView2.DataBind();
我尝试使用以下内容:
GridView2.AllowSorting = true;
仍然不起作用,这是我得到的错误。
我在这里缺少什么?
最佳答案
如果更改 SQLDataSource 的原因是因为您想通过单击按钮来执行新查询;您可以在不创建新数据源的情况下执行此操作:
protected void yourButton_Click(object sender, EventArgs e)
{
// dsYourDataSource is the SQLDataSource that is already connected to your gridview
dsYourDataSource.SelectCommand = "SELECT * FROM USERS";
yourGridView.DataBind();
}
这可能会有所帮助。
关于c# - 使用 DataBind() 后无法对 GridView 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18144686/