0

我在 ASP 中有一个 GridView,用于在购物车中显示产品。

我将 GridView 的源设置为 ShopDataSet,并自动填充列名称、价格和数量。

我想要实现的是我添加的一个新列,它显示每一行的成本,即Cost = price * quantity;

如何在不对数据库执行新查询的情况下以编程方式执行此操作?

我不得不说,在价格和数量上,我设置了价格和数量等"${0}"格式"{0} piece(s)"

4

1 回答 1

0

您应该以编程方式填充数据源。

在 SqlDataReader 中获取结果并使用 SqlDataReader 的结果填充 DataTable。

现在创建一个新的 DataTable,其中的列与您想要的输出相匹配,包括您的案例中的成本。现在遍历第一个 DataTable 的每一行,并使用成本计算将行添加到新 DataTable。

例如,

DataTable oldTable = new DataTable();
oldTable .Load(rdr); // where rdr is your SqlDataReader

现在创建你的新表

DataTable newTable = new DataTable();
DataColumn noteID = new DataColumn("Cost", typeof(string));
newTable.Columns.Add(noteID);
//Add other columns
foreach (DataRow row in oldTable .Rows)
{
   DataRow newRow = newTable.NewRow();
   newRow["Cost"] = //your calculation
   ...
   ...
   newTable.Add(newRow);
}

现在将网格的 DataSource 设置为 NewTable

于 2012-05-14T17:44:17.393 回答