如何将%20
值分配给$mult
中存在的标签lblGrandTotal
。
我使用下面的java脚本代码将FooterTemplate
值分配给网格视图外部的标签。
的JavaScript
$mult
网格视图
<script>
$(document).ready(function () {
$(".txtMult input").on('keyup mouseup', multInputs);
function multInputs() {
var $mult = 0;
// calculate Grand total
$("tr.txtMult").each(function () {
// get the values from this row:
var $UnitPrice = $('.UnitPrice', this).val();
var $Quantity = $('.Quantity', this).val();
var $Discountvalue = $('.Discount', this).val() / 100;
var $total = (($UnitPrice) * ($Quantity));
$mult += $total;
});
// for each row:
$("tr.txtMult").each(function () {
// get the values from this row:
var $UnitPrice = $('.UnitPrice', this).val();
var $Quantity = $('.Quantity', this).val();
var $Discountvalue = $('.Discount', this).val() / 100;
var $total = (($UnitPrice) * ($Quantity));
$('.multTotal', this).text(Math.round($total * 100) / 100);
});
$("#<%=Total.ClientID %>").text(Math.round($mult * 100) / 100);
}
});
</script>
代码
<asp:GridView ID="gridpur" CssClass="table text-nowrap" ShowFooter="true" runat="server" OnRowDataBound="gridpur_RowDataBound" AutoGenerateColumns="False" DataKeyNames="ItemID" DataSourceID="SqlDataSource1">
<Columns>
<asp:TemplateField HeaderText="Quantity">
<ItemTemplate>
<asp:TextBox ID="txtCalcQuantity" CssClass="Quantity form-control" runat="server"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Unit Price">
<ItemTemplate>
<asp:TextBox ID="txtCalcUnitprice" Width="120" CssClass="UnitPrice form-control" runat="server"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Amount">
<ItemTemplate>
<asp:Label ID="lblTotal" runat="server" CssClass="multTotal" Text="0"></asp:Label>
</ItemTemplate>
<FooterTemplate>
<asp:Label ID="lblGrandTotal" Text="" runat="server" />
</FooterTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
答案 0 :(得分:1)
如果页面上只有一个ID为lblGrandTotal
的控件,则可以将其ID模式设置为静态,这将确保这正是最终标记中显示的客户端ID。这将允许您直接在js代码中使用此ID:
<asp:Label ID="lblGrandTotal" Text="" runat="server" ClientIDMode="Static" />
现在你不再需要任何字谜,只需文字ID:
$("lblGrandTotal").text(Math.round($mult * 100) / 100);
同样,只有在此页面上有一个具有此ID的控件时才可以这样做。
替代解决方案是分配您可以查询的内容。例如,CssClass是一种有点标准的方法。
<asp:Label ID="lblGrandTotal" Text="" runat="server" CssClass="grandTotalLabel" />
不需要在样式表中定义此类。再次,确保它不会在其他任何地方使用。现在只需查询它:
$(".grandTotalLabel").text(Math.round($mult * 100) / 100);