我在gridview内部有两个网格视图,其中页脚的总价格和税收显示在页脚和所有内部网格视图中总数显示在gridview1页脚
<asp:TemplateField HeaderText="Category">
<ItemTemplate>
<asp:Label ID="lblcategoryname" runat="server" Text='<%#Eval("ItemName")%>'></asp:Label>
</ItemTemplate>
<FooterTemplate>
Gross Total
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Select Products">
<ItemTemplate>
<table width="100%">
<tr>
<td>
<asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="false" ShowFooter="true">
<Columns>
<asp:TemplateField HeaderText="ItemName">
<ItemTemplate>
<asp:Label ID="lblItemName" runat="server" Text='<%#Eval("ItemName")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Price">
<ItemTemplate>
<asp:Label ID="lblprice" runat="server" Text='<%#Eval("Price")%>' />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="tax">
<ItemTemplate>
<asp:Label ID="lbltax" runat="server" Text='<%#Eval("tax")%>' />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Quantity">
<ItemTemplate>
<asp:TextBox ID="txtCalcQuantity" runat="server" Text='<%#Eval("Quantity")%>' />
</ItemTemplate>
<FooterTemplate>
Total
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Total">
<ItemTemplate>
<asp:Label ID="lblTotal" runat="server" Text="0"></asp:Label>
</ItemTemplate>
<FooterTemplate>
<asp:Label ID="lblGrossTotal" runat="server" Text="0"></asp:Label>
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Total tax">
<ItemTemplate>
<asp:Label ID="lblTotaltax" runat="server" Text="0"></asp:Label>
</ItemTemplate>
<FooterTemplate>
<asp:Label ID="lblGrossTotaltax" runat="server" Text="0"></asp:Label>
</FooterTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</td>
</tr>
</table>
</ItemTemplate>
<FooterTemplate>
<asp:Label ID="lblGrossTotal" runat="server" Text="0"></asp:Label>
<asp:Label ID="lblGrossTotaltax" runat="server" Text="0"></asp:Label>
</FooterTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
但我的问题是页脚值相同,但我们需要为每个内部网格(GridView2)和主网格中的总总数(GridView1)单独计算总税金和税金
答案 0 :(得分:0)
我已经为2个Gridview中的CheckBox做了你可以使用Textbox编辑它以满足你的需求 // JavaScript的
<script type="text/javascript">
function CheckAll(HeaderCheckBox,chkItem,gView)
{
var gv=document.getElementById(gView.id);
//alert(gv.id.replace("_ctl01_HeaderCheckBox",""));
var _hoursGrid=gv.id.replace("_ctl01_HeaderCheckBox","");
//alert(document.getElementById(gv.id.replace("_ctl01_HeaderCheckBox","")).rows.length);
//alert(gv.id.replace("HeaderCheckBox","SelectCheckBox"));
var len=document.getElementById(_hoursGrid).rows.length;
//alert(document.getElementById(gv.id));
if(document.getElementById(gv.id).checked)
{
// alert("p");
for(var i=2;i<=len;i++)
{
if(i<10)
{
// alert(_hoursGrid+'_ctl0'+i+'_'+chkItem);
document.getElementById(_hoursGrid+'_ctl0'+i+'_'+chkItem).checked=true;
}
else
{
document.getElementById(_hoursGrid+'_ctl'+i+'_'+chkItem).checked=true;
}
}
}
else
{
for(var i=2;i<=len;i++)
{
if(i<10)
{
document.getElementById(_hoursGrid+'_ctl0'+i+'_'+chkItem).checked=false;
}
else
{
document.getElementById(_hoursGrid+'_ctl'+i+'_'+chkItem).checked=false;
}
}
}
}
</script>
<ItemTemplate>
<table cellpadding="0" cellspacing="0" width="100%" class="border_bottom_none">
<tr height="20px" class="baground_none">
<td align="left" style="background-color: White; color: Black;">
<asp:Label ID="DateLabel" runat="server" Text='<%# String.Format("{0:D}", Eval("Date")) %>'
Font-Size="11px"></asp:Label>
<asp:HiddenField ID="DateHiddenField" runat="server" Value='<%# String.Format("{0:d}", Eval("Date")) %>' />
</td>
</tr>
<tr>
<td>
<asp:GridView ID="HoursGridView" Width="100%" PagerStyle-HorizontalAlign="Center"
AllowPaging="false" EmptyDataText="No records found" EmptyDataRowStyle-HorizontalAlign="Center"
BorderWidth="0" runat="server" AutoGenerateColumns="false" CssClass="grid_body floatingtalbe">
<HeaderStyle CssClass="grid" />
<RowStyle CssClass="grid_text" />
<PagerStyle CssClass="manag_user_num" />
<AlternatingRowStyle CssClass="grid_box_colr" />
<Columns>
<asp:TemplateField ItemStyle-Width="2%" ItemStyle-CssClass="text_box_req">
<HeaderTemplate>
<asp:CheckBox ID="HeaderCheckBox" runat="server" onClick="CheckAll('HeaderCheckBox','SelectCheckBox',this);" />
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox ID="SelectCheckBox" runat="server" OnCheckedChanged="SelectCheckBox_CheckedChanged"
AutoPostBack="true" />
<asp:HiddenField ID="JobIdHiddenField" runat="server" Value='<%# Eval("Job_Id") %>' />
<asp:HiddenField ID="EmployeeHiddenField" runat="server" Value='<%# Eval("Employee_Id") %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField HeaderText="Job #" DataField="Job_Number" ItemStyle-CssClass="color_black" />
</Columns>
</asp:GridView>
</td>
</tr>
</table>
</ItemTemplate>
</asp:TemplateField>
答案 1 :(得分:0)
这是我的要求 // JavaScript的
<script type="text/javascript">
function funcsum() {
var table = document.getElementById("GridView1");
var Taxsum = 0, pricesum = 0;
for (var i = 1; i < table.rows.length; i++) //setting the incrementor=0, but if you have a header set it to 1
{
if (i != (table.rows.length - 1)) {
var gvname = 'GridView1_GridView2_' + (i - 1);
var subtable = document.getElementById(gvname);
var totTax = 0, totamount = 0;
for (var j = 1; j < subtable.rows.length; j++) {
if (j != (subtable.rows.length - 1)) {
var Tax = 'GridView1_GridView2_' + (i - 1) + '_lbltax_' + (j - 1);
var lbltax = document.getElementById(Tax).innerHTML;
var dpprice = 'GridView1_GridView2_' + (i - 1) + '_lblprice_' + (j - 1);
var lblprice = document.getElementById(dpprice).innerHTML;
var Quantity = 'GridView1_GridView2_' + (i - 1) + '_txtQuantity_' + (j - 1);
var txtQuantity = document.getElementById(Quantity).value;
var totalTax = 'GridView1_GridView2_' + (i - 1) + '_lblTotaltax_' + (j - 1);
var lbltotalTax = document.getElementById(totalTax).innerHTML;
var totamt = 'GridView1_GridView2_' + (i - 1) + '_lblTotal_' + (j - 1);
var lblTotal = document.getElementById(totamt).innerHTML;
if (isNaN(txtQuantity) || txtQuantity == '') {
txtQuantity = 0;
document.getElementById(Quantity).value = txtQuantity;
}
lbltotalTax = (parseFloat(lbltax) * parseFloat(txtQuantity)).toString();
lblTotal = (parseFloat(lblprice) * parseFloat(txtQuantity)).toString();
document.getElementById(totalTax).innerHTML = lbltotalTax;
document.getElementById(totamt).innerHTML = lblTotal;
totTax = totTax + parseFloat(lbltotalTax);
totamount = totamount + parseFloat(lblTotal);
}
else {
var lbl_totalTax = document.getElementById('GridView1_GridView2_' + (i - 1) + '_lblGrossTotaltax').innerHTML;
var lblGrossTotal = document.getElementById('GridView1_GridView2_' + (i - 1) + '_lblGrossTotal').innerHTML;
lbl_totalTax = totTax;
lblGrossTotal = totamount;
document.getElementById('GridView1_GridView2_' + (i - 1) + '_lblGrossTotaltax').innerHTML = totTax;
document.getElementById('GridView1_GridView2_' + (i - 1) + '_lblGrossTotal').innerHTML = totamount;
}
}
Taxsum = Taxsum + parseFloat(totTax);
pricesum = pricesum + parseFloat(totamount);
}
else {
document.getElementById('GridView1_lblGrossTotaltax').innerHTML = Taxsum;
document.getElementById('GridView1_lblGrossTotal').innerHTML = pricesum;
}
}
}
</script>
<asp:TemplateField HeaderText="Category">
<ItemTemplate>
<asp:Label ID="lblcategoryname" runat="server" Text='<%#Eval("ItemName")%>'></asp:Label>
</ItemTemplate>
<FooterTemplate>
Gross Total
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Select Products">
<ItemTemplate>
<table width="100%">
<tr>
<td>
<asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="false" ShowFooter="true">
<Columns>
<asp:TemplateField HeaderText="ItemName">
<ItemTemplate>
<asp:Label ID="lblItemName" runat="server" Text='<%#Eval("ItemName")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Price">
<ItemTemplate>
<asp:Label ID="lblprice" runat="server" Text='<%#Eval("Price")%>' />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="tax">
<ItemTemplate>
<asp:Label ID="lbltax" runat="server" Text='<%#Eval("tax")%>' />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Quantity">
<ItemTemplate>
<asp:TextBox ID="txtQuantity" runat="server" Text='<%#Eval("Quantity")%>' onchange="funcsum()" />
</ItemTemplate>
<FooterTemplate>
Total
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Total">
<ItemTemplate>
<asp:Label ID="lblTotal" runat="server" Text="0"></asp:Label>
</ItemTemplate>
<FooterTemplate>
<asp:Label ID="lblGrossTotal" runat="server" Text="0"></asp:Label>
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Total tax">
<ItemTemplate>
<asp:Label ID="lblTotaltax" runat="server" Text="0"></asp:Label>
</ItemTemplate>
<FooterTemplate>
<asp:Label ID="lblGrossTotaltax" runat="server" Text="0"></asp:Label>
</FooterTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</td>
</tr>
</table>
</ItemTemplate>
<FooterTemplate>
<asp:Label ID="lblGrossTotal" runat="server" Text="0"></asp:Label>
<asp:Label ID="lblGrossTotaltax" runat="server" Text="0"></asp:Label>
</FooterTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>