我收到的時候我做檢查的頭複選框問題,下面是我的GridView我綁定在C#中沒有的jQuery阿賈克斯如何計算檢查框(Gridview標題和行中)的值?
第一種方案:如果標題是檢查 - AMT計算是正確的
第二:當取消選中AMT清除正確
第三:當多行復選框人工檢查,即逐個 後來我取消任何一個行,然後我檢查頭複選框,金額 得到calucated是錯的?
我在這個部分有問題在標題Check.Logic失敗。
這裏是我的表像
到目前爲止我所做的是:
$("[id*=chkHeader]").live("click", function() {
debugger;
var chkHeader = $(this);
var grid = $(this).closest("table");
$("input[type=checkbox]", grid).each(function (i) {
if (chkHeader.is(":checked")) {
$(this).attr("checked", "checked");
if (i >= 1) {
if (isNaN($('[id*= txttcfsa]').val()) && isNaN($('[id*= txtcodex]').val())) {
$('[id*= txttcfsa]').val(totalPrice.toFixed(2));
$('[id*= txtcodex]').val(totalCodex.toFixed(2));
} else {
/* if (grid[0].firstElementChild.childNodes[i].cells[4].firstElementChild.checked != true) {*/
//$('#ctl00_hldPage_txttcfsa').val(0);
//$('#ctl00_hldPage_txtcodex').val(0);
TCFSA = $('[id*= lbtcfsa]').html();
totalPrice = parseFloat(TCFSA);
Codex = $('[id*= lbcodex]').html();
totalCodex = parseFloat(Codex);
EarlierTCFSAValue = parseFloat($('[id*= txttcfsa]').val());
EarlierCodexAValue = parseFloat($('[id*= txtcodex]').val());
TCFSTotalBal = parseFloat(EarlierTCFSAValue) + parseFloat(totalPrice);
CodexTotalBal = parseFloat(EarlierCodexAValue) + parseFloat(totalCodex);
$('[id*= txttcfsa]').val(TCFSTotalBal.toFixed(2));
$('[id*= txtcodex]').val(CodexTotalBal.toFixed(2));
}
}
/* }*/
} else {
$(this).removeAttr("checked");
if (isNaN($('[id*= txttcfsa]').val()) && isNaN($('[id*= txtcodex]').val())) {
$('[id*= txttcfsa]').val(totalPrice.toFixed(2));
$('[id*= txtcodex]').val(totalCodex.toFixed(2));
} else {
TCFSAAmtRemaning = 0;
CodexAmtRemaning = 0;
$('[id*= txttcfsa]').val(TCFSAAmtRemaning.toFixed(2));
$('[id*= txtcodex]').val(CodexAmtRemaning.toFixed(2));
}
}
});
});
$("[id*=chkRow]").live("click", function() {
debugger;
var grid = $(this).closest("table");
var chkHeader = $("[id*=chkHeader]", grid);
if (!$(this).is(":checked")) {
chkHeader.removeAttr("checked");
TCFSA = $('[id*= lbtcfsa]').html();
minusprice = parseFloat(TCFSA);
Codex = $('[id*= lbcodex]').html();
minusCodex = parseFloat(Codex);
if ((isNaN($('[id*= txttcfsa]').val())) && isNaN($('[id*= txtcodex]').val())) {
$('[id*= txttcfsa]').val(minusprice.toFixed(2));
$('[id*= txtcodex]').val(minusCodex.toFixed(2));
}
else {
TCFSAAmtRemaning = parseFloat($('[id*= txttcfsa]').val());
TCFSAAmtRemaning = parseFloat(TCFSAAmtRemaning);
CodexAmtRemaning = parseFloat($('[id*= txtcodex]').val());
CodexAmtRemaning = parseFloat(CodexAmtRemaning);
TCFSAAmtRemaning = TCFSAAmtRemaning - minusprice;
CodexAmtRemaning = CodexAmtRemaning - minusCodex;
$('[id*= txttcfsa]').val(TCFSAAmtRemaning.toFixed(2));
$('[id*= txtcodex]').val(CodexAmtRemaning.toFixed(2));
}
} else {
if ($("[id*=chkRow]", grid).length == $("[id*=chkRow]:checked", grid).length) {
chkHeader.attr("checked", "checked");
TCFSA = $('[id*= lbtcfsa]').html();
totalPrice = parseFloat(TCFSA);
Codex = $('[id*= lbcodex]').html();
totalCodex = parseFloat(Codex);
EarlierTCFSAValue = parseFloat($('[id*= txttcfsa]').val());
EarlierCodexAValue = parseFloat($('[id*= txtcodex]').val());
TCFSTotalBal = parseFloat(EarlierTCFSAValue) + parseFloat(totalPrice);
CodexTotalBal = parseFloat(EarlierCodexAValue) + parseFloat(totalCodex);
$('[id*= txttcfsa]').val(TCFSTotalBal.toFixed(2));
$('[id*= txtcodex]').val(CodexTotalBal.toFixed(2));
}
else {
TCFSA = $('[id*= lbtcfsa]').html();
totalPrice = parseFloat(TCFSA);
Codex = $('[id*= lbcodex]').html();
totalCodex = parseFloat(Codex);
if (isNaN($('[id*= txttcfsa]').val()) && isNaN($('[id*= txtcodex]').val())) {
$('[id*= txttcfsa]').val(totalPrice.toFixed(2));
$('[id*= txtcodex]').val(totalCodex.toFixed(2));
} else {
TCFSTotalBal = ($('[id*= txttcfsa]').val());
TCFSTotalBal = parseFloat(TCFSTotalBal);
CodexTotalBal = parseFloat($('[id*= txtcodex]').val());
CodexTotalBal = parseFloat(CodexTotalBal);
TCFSTotalBal = parseFloat(TCFSTotalBal) + parseFloat(totalPrice);
CodexTotalBal = CodexTotalBal + totalCodex;
$('[id*= txttcfsa]').val(TCFSTotalBal.toFixed(2));
$('[id*= txtcodex]').val(CodexTotalBal.toFixed(2));
}
}
}
});
她的是我的aspx設計
<asp:GridView ID ="grd_cfs" runat="server" AutoGenerateColumns="false" >
<asp:TemplateField HeaderText="TCFSA" ItemStyle-HorizontalAlign="Center" HeaderStyle-CssClass="header-color">
<ItemTemplate>
<asp:Label ID="lbtcfsa" runat="server" Text='<%# Eval("TCFSA")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="CODEX" ItemStyle-HorizontalAlign="Center" HeaderStyle-CssClass="header-color">
<ItemTemplate>
<asp:Label ID="lbcodex" runat="server" Text='<%# Eval("CODEX")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Select" HeaderStyle-CssClass="header-color" ItemStyle-HorizontalAlign="Center">
<HeaderTemplate>
<asp:CheckBox ID="chkHeader" runat="server" />
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox ID="chkRow" runat="server" />
</ItemTemplate>
</asp:TemplateField>
</asp:GridView >
<asp:TextBox ID ="txttcfsa" runat="server" ></asp:TextBox>
<asp:TextBox ID ="txtcodex" runat="server" >
請問您可以添加代碼的小提琴,因此很容易調試.. – Bharat
你使用jquery 1.7或更低? – madalinivascu
'if(chkHeader.is(「:checked」)){ $(this).attr(「checked」,「checked」);'你可以解釋一下嗎? – madalinivascu