Суммирование значений столбца GridView - PullRequest
0 голосов
/ 15 февраля 2012

У меня есть столбец «длительность времени» в виде сетки, и я хочу суммировать этот конкретный столбец в C # и опубликовать общее время, затраченное на метку с именем Total Time. Как я могу это сделать?

Пример кода:

int sum = 0;
for (int i = 0; i < dgTestSteps.SelectedColumns.Count; ++i)
{
    sum += Convert.ToInt32(dgTestSteps.SelectedColumns.Count.ToString());
    //sum += Convert.ToInt32(dgTestSteps.Rows[i].Cells[1].Value);
}
lblTotalTime.Text = sum.ToString();

Ответы [ 3 ]

0 голосов
/ 01 декабря 2012

Я делаю это путем агрегирования значений строки столбца в переменной класса таким образом:

Код:

        protected void ItemsGrid_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            // Get the row variable values
            var rowView = (DataRowView)e.Row.DataItem;
            var itemId = Convert.ToInt32(rowView["ItemID"]);
            var skuId = Convert.ToInt32(rowView["ItemSkuID"]);
            var quantity = Convert.ToInt32(rowView["Quantity"]);

            // Instantiate instances of the relevant classes
            var item = new Item(itemId);
            var sku = new Sku(skuId);

            var itemPrice = String.Format("{0:n2}", (item.Price + sku.PriceAdj));

            var itemPriceLiteral = (Literal)e.Row.FindControl("ItemPrice");
            if (itemPriceLiteral != null)
            {
                itemPriceLiteral.Text = itemPrice;
            }
            var itemExtendedPriceLiteral = (Literal)e.Row.FindControl("ItemExtendedPrice");
            if (itemExtendedPriceLiteral != null)
            {
                var extendedPrice = price * quantity;
                itemExtendedPriceLiteral.Text = String.Format("{0:n2}", extendedPrice);

                // Increment the extended price
                _totalExtendedPrice += extendedPrice;
            }
        }
    } 
    // Lots of stuff omitted from this method for clarity
    public void GetSummary()
    {
        // Set the text property of the total literal below the GridView
        OrderTotal.Text = string.Format((HttpUtility.HtmlDecode(
            (string)GetGlobalResourceObject("ShopStrings", "UsdPrice"))),
                                                        _totalExtendedPrice);
    }

OrderTotal.Text локализован, но вы можете легко отформатировать его без использования ресурсов.

0 голосов
/ 10 августа 2013

Вы можете использовать это, но вы должны знать, что количество столбцов начинается с 0 и увеличивается с 1

int sum = 0;
        for (int i = 0; i < dgTestSteps.Rows.Count; ++i)
        {
            sum += Convert.ToInt32(dgTestSteps.Rows[i].Cells[0].Value);

        }
        lblTotalTime.Text = sum.ToString();

Я пробовал это, и у меня нет проблем

0 голосов
/ 15 февраля 2012
    int sum = 0;
    for (int i = 0; i < dgTestSteps.Rows.Count; ++i)
    {
       sum += Int.Parse(dgTestSteps.Rows[i].Cells[1].Value.ToString());
    }
    lblTotalTime.Text = sum.To String();

Кажется, правда!Есть ли проблемы с этим?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...