【问题标题】:GridView calculations with JavaScript使用 JavaScript 进行 GridView 计算
【发布时间】:2016-03-29 00:04:22
【问题描述】:

您好,因为网格视图将在浏览器中呈现为表格

我如何在 asp.net grid-view 的 JavaScript 下应用

HTML 表格演示:jsfiddle

Javascript 代码

注意这里先计算总计,然后将每行总计除以总计

<script>
    $(document).ready(function () {
        $(".txtMult input").keyup(multInputs);

        function multInputs() {

            var $mult = 0;
            // calculate Grand total
            $("tr.txtMult").each(function () {
                // get the values from this row:
                var $val1 = $('.val1', this).val();
                var $val2 = $('.val2', this).val();
                var $total = ($val1) * ($val2);
                $mult += $total;
            });

            // for each row:
            $("tr.txtMult").each(function () {
                // get the values from this row:
                var $val1 = $('.val1', this).val();
                var $val2 = $('.val2', this).val();
                var $total = ($val1) * ($val2);
                var $Percentage = (($total / $mult)).toFixed(2);
                $('.percentage', this).text($Percentage);
                $('.multTotal', this).text($total);
            });
            $("#grandTotal").text(mult);
        }
    });
</script>

网格视图代码

<asp:GridView ID="testgrid" runat="server" AutoGenerateColumns="False">
    <Columns>
        <asp:TemplateField HeaderText="Quantity">
            <ItemTemplate>
                <asp:TextBox ID="txtCalcQuantity" placeholder="Enter Quantity" runat="server"></asp:TextBox>
            </ItemTemplate>
        </asp:TemplateField>

        <asp:TemplateField HeaderText="Unit Price">
            <ItemTemplate>
                <asp:TextBox ID="txtCalcUnitprice" placeholder="Enter Unit Price" runat="server"></asp:TextBox>
            </ItemTemplate>
        </asp:TemplateField>

        <asp:TemplateField HeaderText="Total">
            <ItemTemplate>
                <asp:Label ID="lblTotal" runat="server" Text="0"></asp:Label>
            </ItemTemplate>
        </asp:TemplateField>

        <asp:TemplateField HeaderText="Percentage">
            <ItemTemplate>
                <asp:Label ID="lblPercentage" runat="server"></asp:Label>
            </ItemTemplate>
        </asp:TemplateField>

    </Columns>

</asp:GridView>

非常感谢您的帮助

【问题讨论】:

    标签: javascript jquery asp.net gridview


    【解决方案1】:
    Grid View:
    
    <asp:GridView ID="testgrid" runat="server" AutoGenerateColumns="False" OnRowDataBound="testgrid_RowDataBound">
        <Columns>
            <asp:TemplateField HeaderText="Quantity">
                <ItemTemplate>
                    <asp:TextBox ID="txtCalcQuantity" CssClass="val1"  placeholder="Enter Quantity" runat="server"></asp:TextBox>
                </ItemTemplate>
            </asp:TemplateField>
    
            <asp:TemplateField HeaderText="Unit Price">
                <ItemTemplate>
                    <asp:TextBox ID="txtCalcUnitprice" CssClass="val2"  placeholder="Enter Unit Price" runat="server"></asp:TextBox>
                </ItemTemplate>
            </asp:TemplateField>
    
            <asp:TemplateField HeaderText="Total">
                <ItemTemplate>
                    <asp:Label ID="lblTotal" CssClass="multTotal" runat="server" Text="0"></asp:Label>
                </ItemTemplate>
            </asp:TemplateField>
    
            <asp:TemplateField HeaderText="Percentage">
                <ItemTemplate>
                    <asp:Label ID="lblPercentage" CssClass="percentage"  runat="server"></asp:Label>
                </ItemTemplate>
            </asp:TemplateField>
    
        </Columns>
    
    </asp:GridView>
            <asp:Label ID="grandTotal" runat="server"></asp:Label>
    
    GV backend:
    
     protected void testgrid_RowDataBound(object sender, GridViewRowEventArgs e)
            {
                if (e.Row.RowType == DataControlRowType.DataRow)
                {
    
                        e.Row.CssClass = "txtMult";
    
                }
            }
    
    Javascript :
    
    <script>
        $(document).ready(function () {
            $(".txtMult input").keyup(multInputs);
    
            function multInputs() {
    
                var $mult = 0;
                // calculate Grand total
                $("tr.txtMult").each(function () {
                    // get the values from this row:
                    var $val1 = $('.val1', this).val();
                    var $val2 = $('.val2', this).val();
                    var $total = ($val1) * ($val2);
                    $mult += $total;
                });
    
                // for each row:
                $("tr.txtMult").each(function () {
                    // get the values from this row:
                    var $val1 = $('.val1', this).val();
                    var $val2 = $('.val2', this).val();
                    var $total = ($val1) * ($val2);
                    var $Percentage = (($total / $mult)).toFixed(2);
                    $('.percentage', this).text($Percentage);
                    $('.multTotal', this).text($total);
                });
                $("#<%=grandTotal.ClientID %>").text($mult);
            }
        });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多