我正在使用一个网站,其中包含一个gridview,用于查看产品详细信息的详细信息...它包含列,如名称,面积,phnoe no,数量,价格,总数....现在我想计算总值我必须将列数量和价格相乘,并将该答案放在网格中的总列中......我该怎么做?
答案 0 :(得分:1)
简单的yaar, 如果行索引为0且您的列名称在price中,则以下是getvalues的方法, GridViewID.Rows [0] .cells [ “价格”]。的ToString()
答案 1 :(得分:1)
有三种(可能更多)方法可以实现这一目标 第一个是查询数据库并在网格上显示结果
要执行此操作:查询如
从YOUR_TABLE中选择名称,地区,电话,数量,价格,数量*价格总计
然后将其绑定到您的数据网格
第二个是在将您的数据源绑定到网格之前绑定到此网格的表格之前的循环。
要执行此操作:您有数据表,但这次没有名为Total的列
现在,您需要将新列作为Total添加到数据表中。
DataColumn totalColumn = new DataColumn("Total");
totalColumn.Expression = "Quantity * Price";
totalColumn.DataType = //double,integer
dataTable.Columns.AddAt(totalColumn, 0);
我们上面所做的只是生成一个计算列
第三次,使用javascript为单元格将您的特定值汇总为sum,但这次您需要找到您的数据网格,然后您应该更喜欢使用像jquery这样的javascript框架。不知道任何参考点,但第一和第二选项将更容易做
最诚挚的问候
迈拉
答案 2 :(得分:0)
这取决于您的要求/愿望,如果您没有从数据库中获取数据,您可以使用Javascript计算客户端的总数。
您也可以在后面的代码中执行此操作,但最好使用JQuery获取数据并在客户端进行计算。
答案 3 :(得分:0)
但我必须在代码背后的
好的。您需要一个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;
}
}