C# 在pagedgridview中对模板字段进行排序

C# 在pagedgridview中对模板字段进行排序,c#,asp.net,C#,Asp.net,我正在尝试向pagedgridview添加排序功能 pagedgridview包含员工的打卡、下班等信息 网格由一个sql数据库填充,我可以通过设置SortExpression对每一列进行排序,只有一列例外 我无法排序的一列是“Duration”列,其中的行值是在.aspx页面中计算的,如代码所示。持续时间是通过从clockout中减去clockin来计算的,因此不需要存储在my db中 当数据库中不存在列时,如何对网格进行排序 <%-- Durat

我正在尝试向pagedgridview添加排序功能

pagedgridview包含员工的打卡、下班等信息

网格由一个sql数据库填充,我可以通过设置SortExpression对每一列进行排序,只有一列例外

我无法排序的一列是“Duration”列,其中的行值是在.aspx页面中计算的,如代码所示。持续时间是通过从clockout中减去clockin来计算的,因此不需要存储在my db中

当数据库中不存在列时,如何对网格进行排序

                    <%-- Duration --%>
                    <asp:TemplateField HeaderText="Duration">
                        <ItemTemplate>
                            <%# GetTimeSpanString(new TimeSpan(((DateTime)Eval("ClockoutDate")).Ticks - ((DateTime)Eval("ClockinDate")).Ticks)).Replace("0 hours", "0.1 hours") %>
                        </ItemTemplate>
                        <ItemStyle Width="80px" />
                    </asp:TemplateField>


持续时间
是标题文本,而不是字段名。您需要将其写为
,或者,如果您有权访问sql或存储过程,请修改它以进行时间计算,并将其作为字段返回,然后解决问题。否则,您可能需要将数据读入类似DataTable的内容,添加一个包含计算的列,并将其用作网格的数据源,这样您就有了一个字段来进行排序
Duration
是标题文本而不是字段名。您需要将其写为
,或者,如果您有权访问sql或存储过程,请修改它以进行时间计算,并将其作为字段返回,然后解决问题。否则,您可能需要将数据读入类似DataTable的内容中,添加一个包含计算的列,并将其用作网格的数据源,以便有一个字段进行排序