在网格视图中,我需要每行的总数,我们如何才能进入网格视图 [英] in the grid view i need the total for each and every row how can we get in a grid view

查看:63
本文介绍了在网格视图中,我需要每行的总数,我们如何才能进入网格视图的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在网格视图中我需要每行的总数我们如何才能进入网格视图



假设:



in the grid view i need the total for each and every row how can we get in a grid view

for suppose:

Weekstartdate    MOn       Tue     Wed    thr    fri    sat  Sun   total          

03/18/2013       8         8        8      8      8     0    0       40
03/25/2013       8         8        8      8      8     0    0       40





这是我用来填充数据的代码我需要的天数这里要计算的总数。





this is the code i used to fill the data in days wise i need the total to be calculated here.

foreach (ManageTimeSheetsModel objTimesheet in objManageTimeSheetsModelLst)
        {
            weekDay = (int)objTimesheet.Timesheetdate.DayOfWeek;
            switch (weekDay.ToString())
            {
                case "1":
                    objTimesheetweekdaysModel.Mon = objTimesheet.Workinghours.ToString();
                    break;
                case "2":
                    objTimesheetweekdaysModel.Tue = objTimesheet.Workinghours.ToString();
                    break;
                case "3":
                    objTimesheetweekdaysModel.Wed = objTimesheet.Workinghours.ToString();
                    break;
                case "4":
                    objTimesheetweekdaysModel.Thu = objTimesheet.Workinghours.ToString();
                    break;
                case "5":
                    objTimesheetweekdaysModel.Fri = objTimesheet.Workinghours.ToString();
                    break;
                case "6":
                    objTimesheetweekdaysModel.Sat = objTimesheet.Workinghours.ToString();
                    break;
                case "0":
                    objTimesheetweekdaysModel.Sun = objTimesheet.Workinghours.ToString();
                    objTimesheetweekdaysMdlList.Add(objTimesheetweekdaysModel);
                    objTimesheetweekdaysModel = new TimesheetweekdaysModel();
                    objTimesheetweekdaysModel.WeekDate = objTimesheet.Timesheetdate.AddDays(1).ToShortDateString();
                    break;

            }
        }
        if (objTimesheetweekdaysModel.Sun != null || objTimesheetweekdaysModel.Mon != null ||
            objTimesheetweekdaysModel.Tue != null || objTimesheetweekdaysModel.Wed != null ||
            objTimesheetweekdaysModel.Thu != null || objTimesheetweekdaysModel.Fri != null ||
            objTimesheetweekdaysModel.Sat != null)
        {
            objTimesheetweekdaysMdlList.Add(objTimesheetweekdaysModel);
        }


        return objTimesheetweekdaysMdlList;
    }





i尝试使用此代码它也无效:





i tried by using this code it is also not working:

<pre lang="cs">protected void GridViewWeeklyTimesheet_RowCreated(object sender, GridViewRowEventArgs e)
    {

    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        decimal total = Convert.ToDecimal(e.Row.Cells[1].Text) + Convert.ToDecimal(e.Row.Cells[2].Text) + Convert.ToDecimal(e.Row.Cells[3].Text) + Convert.ToDecimal(e.Row.Cells[4].Text) + Convert.ToDecimal(e.Row.Cells[5].Text) + Convert.ToDecimal(e.Row.Cells[6].Text) + Convert.ToDecimal(e.Row.Cells[7].Text);

        ((Label)GridViewWeeklyTimesheet.FindControl("TotalHours")).Text = Convert.ToString(total);

    }



}


}

推荐答案

更改您的SP或选择查询。从Sql获取总数并将其绑定在FrontEnd中。试试这个Select Statement:

Alter your SP or select Query. Get the total from Sql and bind it in FrontEnd. Try this Select Statement:
SELECT Mon, Tue, Wed, Thr, Fri, Sat, Sun, (Mon+Tue+Wed+Thr+Fri+Sat+Sun) AS 'Total' FROM YourTableName



使用此数据绑定Gridview。< br $>




--Amit


Bind the Gridview using this data.


--Amit


protected void GridViewWeeklyTimesheet_RowCreated(object sender, GridViewRowEventArgs e)
   {

       if (e.Row.RowType == DataControlRowType.DataRow)
       {
           if (e.Row.Cells[1].Text != "")
           {

               decimal total = Convert.ToDecimal(e.Row.Cells[1].Text) + Convert.ToDecimal(e.Row.Cells[2].Text) + Convert.ToDecimal(e.Row.Cells[3].Text) + Convert.ToDecimal(e.Row.Cells[4].Text) + Convert.ToDecimal(e.Row.Cells[5].Text) + Convert.ToDecimal(e.Row.Cells[6].Text) + Convert.ToDecimal(e.Row.Cells[7].Text);

               ((Label)GridViewWeeklyTimesheet.FindControl("TotalHours")).Text = Convert.ToString(total);
           }
       }
   }







设计部分:




design part:

<asp:TemplateField HeaderText="TotalHours">
                    <ItemTemplate>
                  <asp:Label runat="server" ID="lblWeekTotalHrs" Text='<%# Convert.ToDecimal(Eval("Mon")) + Convert.ToDecimal(Eval("Tue")) + Convert.ToDecimal(Eval("Wed")) + Convert.ToDecimal(Eval("Thu")) + Convert.ToDecimal(Eval("Fri")) + Convert.ToDecimal(Eval("Sat")) + Convert.ToDecimal(Eval("Sun"))%>' />

              </ItemTemplate>
          </asp:TemplateField>


计算你的总数你用gridview绑定的源代码......它更容易..如果你不想这样你就可以使用gridview的RowDataBound事件,在那个事件中检查RowType是否是DataRow,如果是,那么计算总和并将值绑定到你的总栏......
calculate total in your source which you bind with gridview... it is more easy.. if your dont want this then you can use RowDataBound event of gridview, in that event check whether the RowType is DataRow if yes then calculate the sum and bind the value to your total column...


这篇关于在网格视图中,我需要每行的总数,我们如何才能进入网格视图的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆