ASP.NET GridView 对计算字段进行排序

标签 asp.net gridview

我有一个 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/

相关文章:

c# - 如何覆盖/更新IIS当前正在提供的文件?

c# - 如何在 .net 中打开 .xlt 文件?

asp.net - 从 <html lang ="fr"> 标记设置 ASP.NET 页面文化?

asp.net - HTTP 错误 403.14 - 禁止在 Windows 7 上使用 visual studio 12 创建 Web 服务

html - 如何在垂直对齐的 gridView 单元格中显示最多 3 行内容?

c# - ASP.NET C# 在 Repeater 的 Gridview 中继续行计数

c# - 如何获取在ASP.Net应用程序URL中传递的POST和GET数据?

asp.net - 无法从数据库中检索所需的数据

c# - GridView 固定标题

c# - 如何更新 Gridview 中的记录