我需要执行自定义类型的.NET DataGrid。 UserRole
列通过存储过程从SQL返回一组三个字符串值:No Access,View和Update。
<asp:DataGrid ID="UserList" runat="server" AllowPaging="True" AutoGenerateColumns="False" AllowSorting="True" OnDataBinding="UserList_DataBinding">
<Columns>
<asp:BoundColumn DataField="FirstName" HeaderText="First Name"></asp:BoundColumn>
<asp:BoundColumn DataField="LastName" HeaderText="Last Name" SortExpression="LastName ASC, LastName"></asp:BoundColumn>
<asp:BoundColumn DataField="EmailAddress" HeaderText="Email Address"></asp:BoundColumn>
<asp:BoundColumn DataField="UserRole" HeaderText="User Role" SortExpression="UserRole DESC, UserRole"></asp:BoundColumn>
</Columns>
</asp:DataGrid>
我需要能够排序显示&#34;更新&#34;表格顶部的UserRole
列中的值。因为它当前通过SortExpression
属性按降序排序,&#34;查看&#34;来之前&#34;更新&#34;。
如果上面的代码是遗留代码,我无法完全重写代码,但还有另一种方法可以实现这种自定义非alpha排序吗?
答案 0 :(得分:0)
您应该在将数据绑定到网格之前对其进行排序。根据您访问底层数据的方式,您可以使用某种OrderBy子句并订购DESC。如果你只想让“更新”成为第一,那就更难了。