如何在C#asp.net应用程序中加上gridview的一个选定行的所有值? 例如,我有一个gridview,其中只有一行。此行的值仅为数字。所以我想加上这些数字。
我试过这个循环,但是它写了所有的gridview数字(它不是对它们求和)。
for (int i = 2; i < GridView1.Columns.Count; i++)
{
int x = 0;
x += int.Parse(GridView1.Rows[0].Cells[i].Text);
Response.Write(x.ToString());
}
答案 0 :(得分:1)
我认为你应该从不同的角度来看待这个问题。 GridView
只是一个显示控件,并且不会保留&#39;它正在显示的数据。您正在尝试使用屏幕抓取功能确实无法包含的数据。做法。您应该首先查看绑定到网格的DataSource
并使用那里的数据。
例如:
List<YourObjectWithTheNumbers> lst = something;
yourGridView.DataSource = lst;
ViewState["YourData"] = lst; // you could use Session instead: Session["YourData"]
因此,此时您的数据已被绑定并保存供以后使用,因此现在只需更新您的号码并再次重新绑定到GridView
:
List<YourObjectWithTheNumbers> lst =
(List<YourObjectWithTheNumbers>)(ViewState["YourData"]);
int rowTotal = 0;
rowTotal += lst[0].Field1;
rowTotal += lst[0].Field2;
//etc...
yourLiteral.Text = rowTotal.ToString();
此时您正在使用实际数据,而不是将其拉出应该用于显示目的的网格。它也更安全,因为您可以在必要时将数据源安全地存储在服务器上(如果这是一个问题,请不要使用ViewState
)这样它就不可能操纵。
答案 1 :(得分:0)
在HTML GridView渲染为表格中,您可以更好地使用Jquery添加值
var total=0;
$('#gridview1').find('tr td').each(function(i, td){
var data= parseInt( $(td).val());
total+=data;
});
答案 2 :(得分:0)
我创建了循环的方法,它工作了!!!!!!!
public int Sum()
{
int z = 0;
int i;
int x = 0;
for (i = 0; i < GridView1.Columns.Count; i++)
{
x += int.Parse(GridView1.Rows[0].Cells[i].Text);
}
return x;
}
这是@ N4TKD的想法。谢谢你!!!!