显示在总的GridView的页脚以及在最后一列列添加的总和(行老虎钳) [英] Displaying Total in Footer of GridView and also Add Sum of columns(row vise) in last Column
问题描述
在我的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 =报告日dataformatstring ={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前景色=白HorizontalAlign =中心/>
< 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前景色=白HorizontalAlign =中心/>
< 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屋!