显示在总的GridView的页脚以及在最后一列列添加的总和(行老虎钳) [英] Displaying Total in Footer of GridView and also Add Sum of columns(row vise) in last Column

查看:124
本文介绍了显示在总的GridView的页脚以及在最后一列列添加的总和(行老虎钳)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在我的Asp.net应用程序,我有一个 GridView控件和我产生的数据列[6] 我自己用code的后面。

通过查看下面的code,我有一个页脚我的 GridView控件。而问题是我的专栏文字[6]如果我使用脚注不会出现。
如果我删除footertext code,那么我的列文[6]出现。有什么问题?无论是code的不能togather使用?我已经设置ShowFooter =真

 保护无效的Page_Load(对象发件人,EventArgs的发送)
{
    的for(int i = 0;我≤(this.GridView1.Rows.Count);我++)
    {
       this.GridView1.Rows [I] .Cells [6]。文本=测试;
       //GridView1.Columns[1].FooterText =页脚1;
    }
}

的.aspx

 < ASP:GridView控件ID =GridView1=服务器的DataSourceID =SqlDataSource1
            的AutoGenerateColumns =假的DataKeyNames =IDCELLPADDING =4
            前景色=#333333网格=无ShowFooter =真
                    onrowdatabound =GridView1_RowDataBound>
            < RowStyle的BackColor =#EFF3FB/>
            <柱体和GT;
                < ASP:BoundField的数据字段=reportDate的HeaderText =报告日da​​taformatstring ={0:DD MMMM YYYY}SORTEX pression =reportDate/>
                < ASP:BoundField的数据字段=sponsorBonus的HeaderText =保荐红利dataformatstring ={0:0.00}SORTEX pression =sponsorBonusHtmlEn code =FALSE/>
                < ASP:BoundField的数据字段=pairingBonus的HeaderText =配对红利HtmlEn code =FALSESORTEX pression =pairingBonusdataformatstring ={0:C}/>
                < ASP:BoundField的数据字段=staticBonus的HeaderText =静态红利SORTEX pression =staticBonus/>
                < ASP:BoundField的数据字段=leftBonus的HeaderText =左红利SORTEX pression =leftBonus/>
                < ASP:BoundField的数据字段=rightBonus的HeaderText =右红利SORTEX pression =rightBonus/>
                < ASP:BoundField的的HeaderText =总计SORTEX pression =总>
                < ItemStyle宽度=100px的/>
                < / ASP:BoundField的>
            < /专栏>
            < FooterStyle背景色=#507CD1FONT-粗体=真前景色=白/>
            < PagerStyle背景色=#2461BF前景色=白Horizo​​ntalAlign =中心/>
            < SelectedRowStyle背景色=#D1DDF1FONT-粗体=真前景色=#333333/>
            < HeaderStyle背景色=#507CD1FONT-粗体=真前景色=白/>
            < EditRowStyle背景色=#2461BF/>
            < AlternatingRowStyle背景色=白/>
        < / ASP:GridView的>


解决方案

样品code :以编程方式设置页脚文本

 保护无效GridView1_RowDataBound(对象发件人,GridViewRowEventArgs E)
    {
      如果(e.Row.RowType == DataControlRowType.Footer)
      {
         标签LBL =(标签)e.Row.FindControl(lblTotal);
         lbl.Text = grdTotal.ToString(C);
      }
   }

修订code

 小数sumFooterValue = 0;
  保护无效GridView1_RowDataBound(对象发件人,GridViewRowEventArgs E)
    {        如果(e.Row.RowType == DataControlRowType.DataRow)
        {
         字符串sponsorBonus =((标签)e.Row.FindControl(Label2的))文本。
         字符串pairingBonus =((标签)e.Row.FindControl(LABEL3))文本。
         字符串staticBonus =((标签)e.Row.FindControl(Label4))文本。
         字符串leftBonus =((标签)e.Row.FindControl(Label5))文本。
         。字符串rightBonus =((标签)e.Row.FindControl(Label6))文本;
         十进制总价值= Convert.ToDecimal(sponsorBonus)+ Convert.ToDecimal(pairingBonus)+ Convert.ToDecimal(staticBonus)+ Convert.ToDecimal(leftBonus)+ Convert.ToDecimal(rightBonus);
         e.Row.Cells [6]。文本= totalvalue.ToString();
        sumFooterValue + =总价值
        }    如果(e.Row.RowType == DataControlRowType.Footer)
        {
           标签LBL =(标签)e.Row.FindControl(lblTotal);
           lbl.Text = sumFooterValue.ToString();
        }   }

在.aspx页面中

 < ASP:GridView控件ID =GridView1=服务器的DataSourceID =SqlDataSource1
        的AutoGenerateColumns =假的DataKeyNames =IDCELLPADDING =4
        前景色=#333333网格=无ShowFooter =真
                onrowdatabound =GridView1_RowDataBound>
        < RowStyle的BackColor =#EFF3FB/>
        <柱体和GT;
            < ASP:的TemplateField的HeaderText =报告日SORTEX pression =reportDate>
                <&EditItemTemplate的GT;
                    < ASP:文本框ID =TextBox1的=服务器文本='<%#绑定(reportDate)%>'>< / ASP:文本框>
                < / EditItemTemplate中>
                <&ItemTemplate中GT;
                    < ASP:标签ID =Label1的=服务器
                        文字='<%#绑定(reportDate,{0:DD MMMM YYYY})%GT;'>< / ASP:标签>
                < / ItemTemplate中>
            < / ASP:的TemplateField>
            < ASP:的TemplateField的HeaderText =保荐红利SORTEX pression =sponsorBonus>
                <&EditItemTemplate的GT;
                    < ASP:文本框ID =TextBox2中=服务器文本='<%#绑定(sponsorBonus)%>'>< / ASP:文本框>
                < / EditItemTemplate中>
                <&ItemTemplate中GT;
                    < ASP:标签ID =Label2的=服务器
                        文字='<%#绑定(sponsorBonus,{0:0.00})%GT;'>< / ASP:标签>
                < / ItemTemplate中>
            < / ASP:的TemplateField>
            < ASP:的TemplateField的HeaderText =配对红利SORTEX pression =pairingBonus>
                <&EditItemTemplate的GT;
                    < ASP:文本框ID =TextBox3=服务器文本='<%#绑定(pairingBonus)%>'>< / ASP:文本框>
                < / EditItemTemplate中>
                <&ItemTemplate中GT;
                    < ASP:标签ID =LABEL3=服务器
                        文字='<%#绑定(pairingBonus,{0:C})%>'>< / ASP:标签>
                < / ItemTemplate中>
            < / ASP:的TemplateField>
            < ASP:的TemplateField的HeaderText =静态红利SORTEX pression =staticBonus>
                <&EditItemTemplate的GT;
                    < ASP:文本框ID =TextBox4=服务器文本='<%#绑定(staticBonus)%>'>< / ASP:文本框>
                < / EditItemTemplate中>
                <&ItemTemplate中GT;
                    < ASP:标签ID =Label4=服务器文本='<%#绑定(staticBonus)%>'>< / ASP:标签>
                < / ItemTemplate中>
            < / ASP:的TemplateField>
            < ASP:的TemplateField的HeaderText =左红利SORTEX pression =leftBonus>
                <&EditItemTemplate的GT;
                    < ASP:文本框ID =TextBox5=服务器文本='<%#绑定(leftBonus)%>'>< / ASP:文本框>
                < / EditItemTemplate中>
                <&ItemTemplate中GT;
                    < ASP:标签ID =Label5=服务器文本='<%#绑定(leftBonus)%>'>< / ASP:标签>
                < / ItemTemplate中>
            < / ASP:的TemplateField>
            < ASP:的TemplateField的HeaderText =右红利SORTEX pression =rightBonus>
                <&EditItemTemplate的GT;
                    < ASP:文本框ID =TextBox6=服务器文本='<%#绑定(rightBonus)%>'>< / ASP:文本框>
                < / EditItemTemplate中>
                <&ItemTemplate中GT;
                    < ASP:标签ID =Label6=服务器文本='<%#绑定(rightBonus)%>'>< / ASP:标签>
                < / ItemTemplate中>
            < / ASP:的TemplateField>
            < ASP:的TemplateField的HeaderText =总计SORTEX pression =总>
                <&EditItemTemplate的GT;
                    < ASP:文本框ID =TextBox7=服务器>< / ASP:文本框>
                < / EditItemTemplate中>
                < FooterTemplate>
                    < ASP:标签ID =lbltotal=服务器文本=标签>< / ASP:标签>
                < / FooterTemplate>
                <&ItemTemplate中GT;
                    < ASP:标签ID =Label7=服务器>< / ASP:标签>
                < / ItemTemplate中>
                < ItemStyle宽度=100px的/>            < / ASP:的TemplateField>
        < /专栏>
        < FooterStyle背景色=#507CD1FONT-粗体=真前景色=白/>
        < PagerStyle背景色=#2461BF前景色=白Horizo​​ntalAlign =中心/>
        < SelectedRowStyle背景色=#D1DDF1FONT-粗体=真前景色=#333333/>
        < HeaderStyle背景色=#507CD1FONT-粗体=真前景色=白/>
        < EditRowStyle背景色=#2461BF/>
        < AlternatingRowStyle背景色=白/>
    < / ASP:GridView的>

我的博客 - Asp.net GridView的文章

In my Asp.net App, i have a GridView and i generate the data of column[6] by myself using code behind.

by looking at the code below, i have a footer for my gridview. and the problem is my text for column[6] won't appear if i use footer. If i delete the footertext code, then my text for column[6] is appear. what is the problem? both of the code cant use togather? i already set ShowFooter="True"

protected void Page_Load(object sender, EventArgs e)
{
    for (int i = 0; i < (this.GridView1.Rows.Count); i++)
    {
       this.GridView1.Rows[i].Cells[6].Text = "testing";
       //GridView1.Columns[1].FooterText ="footer 1";
    }
}

.aspx

<asp:GridView ID="GridView1" runat="server" DataSourceID="SqlDataSource1" 
            AutoGenerateColumns="False" DataKeyNames="ID" CellPadding="4" 
            ForeColor="#333333" GridLines="None" ShowFooter="True" 
                    onrowdatabound="GridView1_RowDataBound">
            <RowStyle BackColor="#EFF3FB" />
            <Columns>
                <asp:BoundField DataField="reportDate" HeaderText="Report Date" dataformatstring="{0:dd MMMM yyyy}" SortExpression="reportDate" />
                <asp:BoundField DataField="sponsorBonus" HeaderText="Sponsor Bonus"  dataformatstring="{0:0.00}" SortExpression="sponsorBonus" HtmlEncode="False" />
                <asp:BoundField DataField="pairingBonus" HeaderText="Pairing Bonus" HtmlEncode="False" SortExpression="pairingBonus" dataformatstring="{0:c}" />                                       
                <asp:BoundField DataField="staticBonus" HeaderText="Static Bonus"  SortExpression="staticBonus" />
                <asp:BoundField DataField="leftBonus" HeaderText="Left Bonus"  SortExpression="leftBonus" />
                <asp:BoundField DataField="rightBonus" HeaderText="Right Bonus"  SortExpression="rightBonus" />
                <asp:BoundField HeaderText="Total" SortExpression="total" >
                <ItemStyle Width="100px" />
                </asp:BoundField>
            </Columns>
            <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
            <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
            <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
            <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
            <EditRowStyle BackColor="#2461BF" />
            <AlternatingRowStyle BackColor="White" />            
        </asp:GridView>

解决方案

Sample Code: To set Footer text programatically

    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
      if (e.Row.RowType == DataControlRowType.Footer)
      {
         Label lbl = (Label)e.Row.FindControl("lblTotal");
         lbl.Text = grdTotal.ToString("c");
      }
   }

UPDATED CODE:

        decimal sumFooterValue = 0;
  protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {

        if (e.Row.RowType == DataControlRowType.DataRow)
        {
         string sponsorBonus = ((Label)e.Row.FindControl("Label2")).Text;
         string pairingBonus = ((Label)e.Row.FindControl("Label3")).Text;
         string staticBonus = ((Label)e.Row.FindControl("Label4")).Text;
         string leftBonus = ((Label)e.Row.FindControl("Label5")).Text;
         string rightBonus = ((Label)e.Row.FindControl("Label6")).Text;
         decimal totalvalue = Convert.ToDecimal(sponsorBonus) + Convert.ToDecimal(pairingBonus) + Convert.ToDecimal(staticBonus) + Convert.ToDecimal(leftBonus) + Convert.ToDecimal(rightBonus);
         e.Row.Cells[6].Text = totalvalue.ToString();
        sumFooterValue += totalvalue 
        }

    if (e.Row.RowType == DataControlRowType.Footer)
        {
           Label lbl = (Label)e.Row.FindControl("lblTotal");
           lbl.Text = sumFooterValue.ToString();
        }

   }

In .aspx Page

 <asp:GridView ID="GridView1" runat="server" DataSourceID="SqlDataSource1" 
        AutoGenerateColumns="False" DataKeyNames="ID" CellPadding="4" 
        ForeColor="#333333" GridLines="None" ShowFooter="True" 
                onrowdatabound="GridView1_RowDataBound">
        <RowStyle BackColor="#EFF3FB" />
        <Columns>
            <asp:TemplateField HeaderText="Report Date" SortExpression="reportDate">
                <EditItemTemplate>
                    <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("reportDate") %>'></asp:TextBox>
                </EditItemTemplate>
                <ItemTemplate>
                    <asp:Label ID="Label1" runat="server" 
                        Text='<%# Bind("reportDate", "{0:dd MMMM yyyy}") %>'></asp:Label>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField HeaderText="Sponsor Bonus" SortExpression="sponsorBonus">
                <EditItemTemplate>
                    <asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind("sponsorBonus") %>'></asp:TextBox>
                </EditItemTemplate>
                <ItemTemplate>
                    <asp:Label ID="Label2" runat="server" 
                        Text='<%# Bind("sponsorBonus", "{0:0.00}") %>'></asp:Label>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField HeaderText="Pairing Bonus" SortExpression="pairingBonus">
                <EditItemTemplate>
                    <asp:TextBox ID="TextBox3" runat="server" Text='<%# Bind("pairingBonus") %>'></asp:TextBox>
                </EditItemTemplate>
                <ItemTemplate>
                    <asp:Label ID="Label3" runat="server" 
                        Text='<%# Bind("pairingBonus", "{0:c}") %>'></asp:Label>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField HeaderText="Static Bonus" SortExpression="staticBonus">
                <EditItemTemplate>
                    <asp:TextBox ID="TextBox4" runat="server" Text='<%# Bind("staticBonus") %>'></asp:TextBox>
                </EditItemTemplate>
                <ItemTemplate>
                    <asp:Label ID="Label4" runat="server" Text='<%# Bind("staticBonus") %>'></asp:Label>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField HeaderText="Left Bonus" SortExpression="leftBonus">
                <EditItemTemplate>
                    <asp:TextBox ID="TextBox5" runat="server" Text='<%# Bind("leftBonus") %>'></asp:TextBox>
                </EditItemTemplate>
                <ItemTemplate>
                    <asp:Label ID="Label5" runat="server" Text='<%# Bind("leftBonus") %>'></asp:Label>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField HeaderText="Right Bonus" SortExpression="rightBonus">
                <EditItemTemplate>
                    <asp:TextBox ID="TextBox6" runat="server" Text='<%# Bind("rightBonus") %>'></asp:TextBox>
                </EditItemTemplate>
                <ItemTemplate>
                    <asp:Label ID="Label6" runat="server" Text='<%# Bind("rightBonus") %>'></asp:Label>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField HeaderText="Total" SortExpression="total">
                <EditItemTemplate>
                    <asp:TextBox ID="TextBox7" runat="server"></asp:TextBox>
                </EditItemTemplate>
                <FooterTemplate>
                    <asp:Label ID="lbltotal" runat="server" Text="Label"></asp:Label>
                </FooterTemplate>
                <ItemTemplate>
                    <asp:Label ID="Label7" runat="server"></asp:Label>
                </ItemTemplate>
                <ItemStyle Width="100px" />

            </asp:TemplateField>
        </Columns>
        <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
        <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
        <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
        <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
        <EditRowStyle BackColor="#2461BF" />
        <AlternatingRowStyle BackColor="White" />            
    </asp:GridView>

My Blog - Asp.net Gridview Article

这篇关于显示在总的GridView的页脚以及在最后一列列添加的总和(行老虎钳)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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