私は質問が面白い見つけるので、私は、二列のフッターの可能な実装から1を示しているthe demoを作成しました:
主なアイデアはどこのテーブルの2行目を追加することです標準フッターは既に存在します。 jqGridコードの他の部分で発生する可能性のある問題を解消するために、私はカスタム行のクラス名footrow
をmyfootrow
に置き換えました。元tooter私は.ui-jqgrid tr.myfootrow td
について同じ定義を持つui.jqgrid.css
から.ui-jqgrid tr.footrow td
のコピーが含まれているように、第2フッタに同じCSSの設定を持っている:
.ui-jqgrid tr.myfootrow td {
font-weight: bold;
overflow: hidden;
white-space:nowrap;
height: 21px;
padding: 0 2px 0 2px;
border-top-width: 1px;
border-top-color: inherit;
border-top-style: solid;
}
完全なコードを、あなたは
footerrow: true,
loadComplete: function() {
var $this = $(this),
sum = $this.jqGrid("getCol", "amount", false, "sum"),
$footerRow = $(this.grid.sDiv).find("tr.footrow"),
localData = $this.jqGrid("getGridParam", "data"),
totalRows = localData.length,
totalSum = 0,
$newFooterRow,
i;
$newFooterRow = $(this.grid.sDiv).find("tr.myfootrow");
if ($newFooterRow.length === 0) {
// add second row of the footer if it's not exist
$newFooterRow = $footerRow.clone();
$newFooterRow.removeClass("footrow")
.addClass("myfootrow ui-widget-content");
$newFooterRow.children("td").each(function() {
this.style.width = ""; // remove width from inline CSS
});
$newFooterRow.insertAfter($footerRow);
}
$this.jqGrid("footerData", "set", {invdate: "Total (page):", amount: sum});
// calculate the value for the second footer row
for (i = 0; i < totalRows; i++) {
totalSum += parseInt(localData[i].amount, 10);
}
$newFooterRow.find(">td[aria-describedby=" + this.id + "_invdate]")
.text("Grand Total:");
$newFooterRow.find(">td[aria-describedby=" + this.id + "_amount]")
.text($.fmatter.util.NumberFormat(totalSum, $.jgrid.formatter.number));
}
の下を見つけるだろう
コードでは、フッターの列invdate
とamount
に追加情報を設定しました。
このリンクを確認してください:http://stackoverflow.com/questions/7392987/jqgrid-total-amount-row –