ASP.NET GridView在计算字段上排序

Tom*_*ter 1 asp.net gridview

我有一个DataBound GridView.但是我有一列,其值来自后面代码中的计算 - 它显示在TemplateField中.

如何根据此计算值对网格进行排序?

Ste*_*ton 7

将您的初始返回数据放入DATASET或DATATABLE.为您计算的字段添加到DATATABLE新列.走过那些数据做必要的计算,并将结果放入所说的计算字段.

基于数据表创建新视图,并按计算字段对视图进行排序.将网格绑定到数据视图.

Dim DT as DataTable 
DT = GetDataTableFromDataBaseMethod()
DT.Columns.Add(New DataColumn("CalculatedColumnName"))
For each row as DataRow in DT.Rows
    row("CalculatedColumnName") = PerformCalculations(row)
Next 

Dim view as New DataView 
view.DataTable =dt 
View.Sort = "CalculatedColumnName DESC"

datagrid1.Datasource = view
datagrid1.Databind 
Run Code Online (Sandbox Code Playgroud)

或者,如果可能,在SQL语句中执行计算,re:

SELECT Col1, Col2, Col3, Col1+Col2+Col3 AS LineTotal FROM Table; 
Run Code Online (Sandbox Code Playgroud)