我有一个 DataBound GridView。不过,我有一列,其中的值来自后面代码中的计算 - 它显示在 TemplateField 中。
如何根据此计算值对网格进行排序?
最佳答案
将初始返回的数据放入数据集或数据表中。在数据表中为您的计算字段添加一个新列。遍历该数据进行必要的计算,并将结果放入所述计算字段中。
根据数据表创建新 View ,并按计算字段对 View 进行排序。将网格绑定(bind)到数据 View 。
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
或者,如果可能的话,在SQL语句中执行计算,re:
SELECT Col1, Col2, Col3, Col1+Col2+Col3 AS LineTotal FROM Table;
关于ASP.NET GridView 对计算字段进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/391450/