C# 排序gridview在从代码隐藏进行数据绑定时清除gridview

C# 排序gridview在从代码隐藏进行数据绑定时清除gridview,c#,sql,asp.net,gridview,binding,C#,Sql,Asp.net,Gridview,Binding,我有一个ASP.net C#页面,它在一个SQL查询中使用一个存储过程来返回多个表 然后,我将页面中的每个GridView绑定到查询中的相应表: grdCustomers.DataSource = objDS.Tables[3]; grdCustomers.DataBind(); 这很好,但在对GridView列进行排序时会清除数据。我知道我需要在回发时再次绑定数据,但我不确定是否有一种简单的方法可以做到这一点,因为GridView现在在页面加载时没有绑定 在代码中绑定数据时,保持GridVi

我有一个ASP.net C#页面,它在一个SQL查询中使用一个存储过程来返回多个表

然后,我将页面中的每个GridView绑定到查询中的相应表:

grdCustomers.DataSource = objDS.Tables[3];
grdCustomers.DataBind();
这很好,但在对GridView列进行排序时会清除数据。我知道我需要在回发时再次绑定数据,但我不确定是否有一种简单的方法可以做到这一点,因为GridView现在在页面加载时没有绑定


在代码中绑定数据时,保持GridView绑定在排序上以及正确排序列的最简单方法是什么?

“既然GridView现在不绑定在页面加载上”为什么不,它们什么时候绑定?与加载大型数据集不同,写入方法返回一个
DataTable
,每个网格一个。然后,您可以在第一次加载时调用所有这些方法(
!IsPostBack
)。在连续的回发(如排序中的回发)中,您只需调用返回单个表的相关方法。有一个下拉选择来选择要传递给存储过程的值。这就是绑定gridview的原因。@TimSchmelter没有完全理解您的评论。我仍然不明白为什么您不能用正确的排序从网格重新加载数据源为什么不对DataTable而不是gridview进行排序?