ASP.NET Gridview不区分大小写的列排序
我正在实现一个gridview来处理一个sql server数据库表。当我单击对列进行排序时,它首先按大写字母排序(例如Test、Test2、Test3、test1、Test2)。是否有一种方法可以操纵排序,使其按预期返回结果(例如Test、test1、Test2、Test2、Test3)?我认为您必须使用网格的排序事件来执行自定义排序:ASP.NET Gridview不区分大小写的列排序,asp.net,sql-server,gridview,webforms,Asp.net,Sql Server,Gridview,Webforms,我正在实现一个gridview来处理一个sql server数据库表。当我单击对列进行排序时,它首先按大写字母排序(例如Test、Test2、Test3、test1、Test2)。是否有一种方法可以操纵排序,使其按预期返回结果(例如Test、test1、Test2、Test2、Test3)?我认为您必须使用网格的排序事件来执行自定义排序: 否则,如果您不想这样做,只需让数据库返回另一列,其中包含所有小写文本。然后在gridView列中,当前的Test、Test2等都显示在那里,其中一个是隐藏标
否则,如果您不想这样做,只需让数据库返回另一列,其中包含所有小写文本。然后在gridView列中,当前的Test、Test2等都显示在那里,其中一个是隐藏标签,并将排序设置为该列。我还没有尝试过这个方法,但它可能会起作用,所以在这列中,ItemTemplate有两个输出,但只显示一个,然后对隐藏的一个进行排序 在.aspx文件中尝试以下操作:
<asp:GridView ID="grd" runat="server">
</asp:GridView>
有关更多详细信息,请参阅此链接
如果这能解决您的问题,请将此答案标记为有用。
protected void Page_Load(object sender, EventArgs e)
{
DataTable dt = new DataTable();
dt.Columns.Add("Subject", typeof(string));
dt.Rows.Add("Test");
dt.Rows.Add("Test2");
dt.Rows.Add("Test3");
dt.Rows.Add("test1");
dt.Rows.Add("test2");
dt.CaseSensitive = true; // this will allow case sensitive sorting
dt.DefaultView.Sort = "Subject asc";
grd.DataSource = dt;
grd.DataBind();
}