这里的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
那么我的“特殊”排序代码吗?
更新:只是要清楚,我没有问题滚动我自己的函数来比较两个字符串,因为我需要。然而,我不知道如何将函数应用于我的数据网格/数据源。