這裏的GridView控件:使用自定義功能進行排序一個asp:GridView控件
<asp:GridView ID="MyGridView" runat="server" AllowPaging="true" AllowSorting="true"
OnPageIndexChanging="MyGridView_PageIndexChanging"
OnSorting="MyGridView_Sorting">
<Columns>
<asp:TemplateField HeaderText="ID" SortExpression="Id">
<ItemTemplate>
<asp:Label ID="idLabel" runat="server" Text='<%# Bind("Id") %>' />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
這裏,Id列是由字母「T」後跟一個數字的總是一個字符串,即「T1」或「T597」其他列相當普通的名稱和說明字符串字段。
我需要這個Id列進行排序,就像Id是數字一樣,忽略了前面的字母。但由於它的存在,它被視爲一個字符串和排序爲這樣:T1,T10,T100,T2,T231,T34,...
所以,我認爲有可能是:
protected void MyGridView_Sorting(object sender, GridViewSortEventArgs e)
{
if (e.SortExpression.Equals("Id")
{
// Special sorting code
}
else
{
// Normal sorting code
}
}
當「正常」的排序代碼如下轉換DataSource
到DataView
和設置DataView.Sort = e.SortExpression
等,例如常見的模式:allow sorting by column gridview
那麼我的「特殊」排序代碼嗎?
更新:只是要清楚,我沒有問題滾動我自己的函數來比較兩個字符串,因爲我需要。然而,我不知道如何將函數應用於我的數據網格/數據源。