は、以下に私はC#からではないのjQueryによって結合している私のGridViewのあるAjaxのCheckBox(グリッドビューのヘッダーと行)のチェック時に値を計算する方法は?
最初のシナリオ:ヘッダーチェックである場合 - AMT計算が適正である
第二:間違っている複数の行のチェックボックスを1つずつ すなわち手動でチェックされているとき、私はいずれかの行をオフにしてから、私は、ヘッダーのチェックボックスをチェックし、金額 がcalucated取得:チェックを外しAMTが正しく
サードをクリアしたときに?
ヘッダーチェックで問題が発生しました。この部分では失敗しました。ここで
は私のテーブルには、これまでのところ、私が何をしたか
のように見えるです:
$("[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