Как Найти Сумму Столбца В GridView С Помощью C#
Как найти сумму столбца в GridView с помощью C#
Вы можете перебрать GridViewRow и найти конкретный элемент управления, в котором отображается число, и выполнить его суммирование, как показано ниже.
var total = 0; foreach (GridViewRow row in GridView1.Rows) { var numberLabel = row.FindControl("ID of Label") as Label; int number; if (int.TryParse(numberLabel.Text, out number)) { total += number; } } // Sum in variable total
идентификатор метки означает, что я не взял никаких меток внутри gridview.,
Вы использовали связанный столбец?
Если вы использовали связанный столбец, то вы можете использовать следующий код
var numberLabel = строка.Клетки[1].Text; / / 1 - номер столбца в GridView
я не использовал связанный столбец
Тогда что же вы использовали ?
Сумма столбцов сразу 27 GridViews:
protected void Page_Load(отправитель объекта, EventArgs e)
{
//== Блок управления =============================
GridView[] ObjGridViewArray = новый GridView[26];
ObjGridViewArray[0] = Gridview4;
ObjGridViewArray[1] = Gridview5;
ObjGridViewArray[2] = Gridview6; ObjGridViewArray[3] = Gridview7;
ObjGridViewArray[4] = Gridview9; ObjGridViewArray[5] = Gridview10;
ObjGridViewArray[6] = Gridview11; ObjGridViewArray[7] = Gridview12; ObjGridViewArray[8] = Gridview13; ObjGridViewArray[9] = Gridview14;
ObjGridViewArray[9] = Gridview16; ObjGridViewArray[10] = Gridview17; ObjGridViewArray[11] = Gridview18; ObjGridViewArray[12] = Gridview19; ObjGridViewArray[13] = Gridview20;
ObjGridViewArray[14] = Gridview21; ObjGridViewArray[15] = Gridview22; ObjGridViewArray[16] = Gridview23; ObjGridViewArray[17] = Gridview24; ObjGridViewArray[18] = Gridview25;
ObjGridViewArray[19] = Gridview26; ObjGridViewArray[20] = Gridview27; ObjGridViewArray[21] = Gridview28; ObjGridViewArray[22] = Gridview29; ObjGridViewArray[23] = Gridview30;
ObjGridViewArray[24] = Gridview31; ObjGridViewArray[25] = Gridview33;
for (int i = 0; i < ObjGridViewArray.Длина; i++)
{
sumOfColumnsOfAllGridviews(ObjGridViewArray[i]);
}
}
частный недействительными sumOfColumnsOfAllGridviews(GridView ObjGridViewArrays)
{
строковые значения;
for (int c = 0; c < ObjGridViewArrays.Столбцы.Count; c++)
{
for (int j = 0; j < ObjGridViewArrays.Rows.Count; j++)
{
valuesG = ObjGridViewArrays.Строки[j].Ячейки[c]. текст;
двойное число;
bool isNum = double.Метод tryparse(valuesG, из числ);
если (isNum)
{
sum2 = sum2 + decimal. Parse(valuesG);
}
// = = Отображение Итога =======================
ObjGridViewArrays.Нижний колонтитул.Ячейки[0].Text = " Всего";
ObjGridViewArrays.Нижний колонтитул.Клетки[с].Текст = сум2.Метод toString();
ObjGridViewArrays.Нижний колонтитул.Ячейки[c]. BackColor = система.Рисование.Цвет.Хаки;
ObjGridViewArrays.Нижний колонтитул.Ячейки[0]. BackColor = Система.Рисование.Цвет.Красный;
//========================================
}
сум2 = 0;
}
}
Этому вопросу уже почти 4 года. Я понятия не имею, почему вы решили распространить заявленную проблему на несколько gridviews, и я не уверен, что этот неформатированный код делает то, что вы думаете.
Вот вам пример. Вы можете реализовать это в событии RowDataBound Gridview следующим образом:
protected void Gridview_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { string name= textbox1.text; SqlCommand cmd = new SqlCommand("select SUM(leave) from leave_rec where name=@empname",conn); cmd.Parameters.Add(new SqlParameter("@empname", name)); SqlDataReader dr = cmd.ExecuteReader(); if (dr.Read()) { Label leave_label = (Label)e.Row.FindControl("your label id"); object value = dr.GetValue(0); leave_label.Text = value.ToString(); } } }
Gridview_RowDataBound
Событие, мы рассчитали общее количество отпусков для конкретного сотрудника, которое будет отображаться на этикетке.
проверьте эту ссылку
http://social.msdn.microsoft.com/Forums/en-US/windowsuidevelopment/thread/611b6cd8-d74f-4717-b12c-c9658fbdfc31/[^]
Попробовать это
int sum = 0; for (int i = 0; i < GridView1.Rows.Count; i++) { sum += int.Parse( GridView1.Rows[i].Cells[CellIndex].Text); } Label1.Text = sum.ToString();
это дало ошибку типа: входная строка была не в правильном формате.
мне нужна сумма 5-го столбца в gridview
int sum = 0;
для (тип int я = 0; Я &л; grv_Product.Строк.Граф; i++)
{
сумма += инт.Синтаксический анализ(grv_Product.Строки[i].Ячейки[5]. Текст);
}
для 5-го столбца индекс ячейки равен 4.
это было очень полезное решение. Спасибо большое!