0

グリッドビューの列(datetime)にいくつかの値(08:12,09:22,01:09)があり
、フッターにあるテキストボックスのその列にあるすべての値の合計を取得したいその列の。

私は以下のコードを試しました -

    int hours, minutes;
    TextBox footxt = (TextBox)GridView2.FooterRow.FindControl("footxt1");
    foreach (GridViewRow row in GridView2.Rows)
    {
        TextBox txts = (TextBox)row.FindControl("text11");

        TimeSpan ts = TimeSpan.Parse(txts.Text);
        hours = ts.Hours;
         minutes = ts.Minutes;
        hours += hours;
        minutes += minutes;
     footxt.Text = Convert.ToString(hours);
     }

しかし、それはうまくいきません!

4

3 に答える 3

2

あなたは結ぶことができます-hours and hoursCpt

    ... 
    hours = ts.Hours;
    minutes = ts.Minutes;
    hoursCpt += hours;

そう

int hours, minutes, hoursCpt, minutesCpt;
hoursCpt = 0;
minutesCpt = 0;

TextBox footxt = (TextBox)GridView2.FooterRow.FindControl("footxt1");
foreach (GridViewRow row in GridView2.Rows)
{
    TextBox txts = (TextBox)row.FindControl("text11");

    TimeSpan ts = TimeSpan.Parse(txts.Text);
    hours = ts.Hours;
    minutes = ts.Minutes;

    hoursCpt += hours;
    minutesCpt  += minutes;
 }
 footxt.Text = Convert.ToString(hoursCpt + ((minutesCpt  - minutesCpt  % 60) / 60));
于 2012-10-12T15:53:46.973 に答える
1

TimeSpan を使用しますoperator +

TimeSpan total = new TimeSpan();
TextBox footxt = (TextBox)GridView2.FooterRow.FindControl("footxt1");
foreach (GridViewRow row in GridView2.Rows)
{
    TextBox txts = (TextBox)row.FindControl("text11");
    total += TimeSpan.Parse(txts.Text);
}
footxt.Text = Convert.ToString(hours);
于 2012-10-12T16:00:34.367 に答える
1

hours現在、ループするたびに上書きしているので、追加しますが、次の値に戻ったときに消去します。

int totHours, totMinutes
TextBox footTxt = (TextBox)GridView2.FooterRow.FindControl("footxt1");

foreach (GridViewRow row in GridView2.Rows)
{
    TextBox txts = (TextBox)row.FindControl("text11");
    TimeSpan ts = TimeSpan.Parse(txts.Text);

    totHours += ts.Hours;
    totMinutes += ts.Minutes;

}
footTxt.Text = totHours.ToString();
于 2012-10-12T15:55:54.017 に答える