2013-04-30 8 views
0

Я реализую gridview для обработки одной таблицы базы данных SQL Server. Когда я нажимаю для сортировки столбца, он делает это заглавными буквами (например, Test, Test2, Test3, test1, test2). Есть ли способ манипулировать сортировкой, чтобы он возвращал результаты, как ожидалось (например, Test, test1, Test2, test2, Test3)?ASP.NET Gridview случайная сортировка столбцов

ответ

1

Попробуйте следующее .aspx файл:

<asp:GridView ID="grd" runat="server"> 
</asp:GridView> 

И добавить ниже в .aspx.cs:

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(); 
} 

Для получения более подробной информации обратитесь по ссылке How to sort a DataView in a case-insensitive manner?

Пожалуйста, отметьте этот ответ полезно, если это решит вашу проблему.

0

Я думаю, что вы должны использовать сортировки события сетки, чтобы сделать пользовательский вид: http://www.nullskull.com/a/866/aspnet--sorting-a-gridview-bound-to-a-custom-data-object.aspx

В противном случае, если вы не хотите, чтобы сделать это, только что база данных возвращают еще один столбец со всеми строчными буквами текста. Затем в столбце gridView, где у вас есть текущий Test, Test2 и т. Д., Отобразите оба там, у вас есть скрытая метка и установите сортировку в этот столбец. Я не пробовал это, но он может работать, поэтому в столбцах ItemTemplate есть оба вывода, но они отображаются только один, а затем сортируются по скрытому.

Смежные вопросы