【问题标题】:Calculate Total Value In Gridview In ASP.net C#在 ASP.net C# 中计算 Gridview 中的总值
【发布时间】:2010-03-26 11:13:34
【问题描述】:

我正在使用一个网站,其中包含用于查看产品详细信息的网格视图...它包含名称、面积、phnoe no、数量、价格、总计等列...现在我想计算总价值我必须将列数量和价格相乘,并将该答案放在网格中的总列中......我该怎么做?

【问题讨论】:

  • 您使用哪种方式绑定您的网格?引用、数据表、数据集、对象数据源是什么?
  • 您能否将标题从“总值”更改为“计算列”。我觉得“总值”很容易被误解为“集团总值”或“总总值”……我自己会做,但我不会有足够的功劳来做同样的事情。

标签: c# asp.net


【解决方案1】:

有三种(可能更多)方法可以完成此操作。
第一种是查询数据库并在网格上显示结果

要做到这一点:像
一样查询 从 YOUR_TABLE 中选择名称、区域、电话、数量、价格、数量 * 价格作为总计 然后将其绑定到您的数据网格中

第二是在将您的数据表源绑定到网格之前,为您的总和循环此表。

为此:您有数据表,但这次没有名为 Total 的列。
现在您需要将一个新列作为 Total 添加到数据表中。

DataColumn totalColumn = new DataColumn("Total");
totalColumn.Expression = "Quantity * Price";
totalColumn.DataType = //double,integer 
dataTable.Columns.AddAt(totalColumn, 0);

我们上面所做的只是生成一个计算列

第三,对单元格使用 javascript 来组合你的特定值以求和,但是这次你需要找到你的数据网格然后你的单元格,你应该更喜欢使用像 jquery 这样的 javascript 框架。我做不知道任何参考点,但第一个和第二个选项会更容易做


最好的问候
迈拉

【讨论】:

  • +1 用于指出计算列的方式,但更简单的方式是第一种方式,前提是您有权更改查询或 SP。
【解决方案2】:

它很简单, 如果行索引为 0 并且您在价格中的列名表示,以下是获取值的方法, GridViewID.Rows[0].cells["Price"].ToString()

【讨论】:

    【解决方案3】:

    这取决于您的要求/愿望,如果您不从数据库中获取数据,您可以使用 Javascript 在客户端计算总数。

    您也可以在后面的代码中执行此操作,但最好使用 JQuery 获取数据并在客户端进行计算。

    【讨论】:

    【解决方案4】:

    但我只能在代码中使用它

    那好吧。你需要一个模板列到你的 GridView

    <asp:TemplateField>
    <ItemTemplate>
      <asp:Literal ID="litTotal" runat="server" />
    </ItemTemplate>
    </asp:TemplateField>
    

    订阅 RowDataBound 事件。

    protected void grid_RowDataBound(object sender, GridViewRowEventArgs e) 
    {    
     if(e.Row.RowType == RowType.DataRow)  
     {  
        YourObject _item = (YourObject)e.Row.DataItem; // use quickwatch to figure out how to cast into your desired type
        Literal _litTotal = (Literal)e.Row.FindControl("litTotal");
      _litTotal.Text = _item.Quantity * _item.Price;
     }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-02-07
      • 2016-03-07
      • 2018-12-26
      • 1970-01-01
      • 1970-01-01
      • 2021-03-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多