gpt4 book ai didi

javascript - 使用 Javascript 访问 GridView 页脚中的标签控件

转载 作者:行者123 更新时间:2023-12-03 06:35:05 26 4
gpt4 key购买 nike

如何将 $mult 值分配给 FooterTemplate 中存在的标签 lblGrandTotal

我使用下面的java脚本代码将$mult值分配给 GridView 之外存在的标签。

JavaScript

<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>

GridView

<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>

隐藏代码

protected void gridpur_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.CssClass = "txtMult";
}
}

最佳答案

如果页面上只有一个 ID 为 lblGrandTotal 的控件,则可以将其 ID 模式设置为静态,这将确保这正是最终标记中显示的客户端 ID。这将允许您直接在 js 代码中使用此 ID:

<asp:Label ID="lblGrandTotal" Text="" runat="server" ClientIDMode="Static" />

现在您不再需要任何 scriplet,只需要文字 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);

关于javascript - 使用 Javascript 访问 GridView 页脚中的标签控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38268695/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com