c# - 使用 DataBind() 后无法对 GridView 进行排序

标签 c# asp.net sorting gridview data-binding

我有一个 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;

仍然不起作用,这是我得到的错误。

enter image description here

我在这里缺少什么?

最佳答案

如果更改 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/

相关文章:

asp.net表单例份验证多人使用同一用户名登录

asp.net - 在网站中包含 Gravatar

javascript - 对 ASP.NET Web API 的跨域请求

javascript - 新的排序算法还是重新发现?

java - 如何在 Android 中正确排序数组中的大写和小写字符串?

c# - 使用 c# lambda 将 NameValueCollection 转换为查询字符串是否有效?

c# - PayPal 集成 (IPN) - 真的有可能吗?

c# - Linq to entity,使用不在运算符中的sql

java - 这种排序算法的时间复杂度是多少?

c# - 使用 Linq 从 xml 文件中读取值