微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ASP.NET MVC 动态 TextBox 如何计算

如何解决ASP.NET MVC 动态 TextBox 如何计算

我想计算每一行。我该怎么办?

这个csHTML代码

@using (Html.BeginForm("Deneme1","Siparis",FormMethod.Post))

{@Html.AntiForgeryToken()
@Html.ValidationSummary(true)

if (ViewBag.Message != null)
{
    <div style="border:solid 1px green">
        @ViewBag.Message
    </div>
}
<input type="button" value="Add" onClick="addRow('dataTable')" />

<div class='col-xs-12'>
    <a class="btn btn-info" href="#" id="addNew"><span class="glyphicon glyphicon-plus"></span>Yeni Satır</a>
</div>
<table id="dataTable" class="table table-bordered table-striped">
    <tr>
        <th>Ürün Adı</th>
        <th>Fiyat</th>
        <th>Adet</th>
        <th>Toplam</th>
        <th></th>
    </tr>
    @if (Model != null && Model.Count > 0)
    {
        int j = 0;
        foreach (var i in Model)
        {
            <tr style="border:1px solid black">
                <td>@Html.TextBoxFor(a => a[j].i_urunadi,new { @class = "form-control" })</td>
                <td>@Html.TextBoxFor(a => a[j].i_urunfiyat,new { @class = "form-control ",@name="fiyat",oninput = "calculate('row_0')",id = "fiyat" })</td>
                <td>@Html.TextBoxFor(a => a[j].i_urunadet,@name="adet",id="adet"})</td>
                <td>@Html.TextBoxFor(a => a[j].i_toplam,new { @class = "form-control",@name="toplam" })</td>
                <td>
                    @if (j > 0)
                    {
                        <a href="#" class="remove">Kaldır</a>
                    }
                </td>
            </tr>
            j++;
        }
    }
</table>
<input type="submit" class="btn btn-info" value="Kaydet" />}

这个动态添加行和删除功能

第一行 第二排

@section Scripts{
@Scripts.Render("~/bundles/jqueryval")
<script language="javascript">
    $(document).ready(function () {

    //1. Add new row
    $("#addNew").click(function (e) {
        e.preventDefault();
        var $tableBody = $("#dataTable");
        var $trLast = $tableBody.find("tr:last");
        var $trNew = $trLast.clone();

        var suffix = $trNew.find(':input:first').attr('name').match(/\d+/);
        $trNew.find("td:last").html('<a href="#" class="remove">Remove</a>');
        $.each($trNew.find(':input'),function (i,val) {
            // Replaced Name
            var oldN = $(this).attr('name');
            var newN = oldN.replace('[' + suffix + ']','[' + (parseInt(suffix) + 1) + ']');
            $(this).attr('name',newN);
            //Replaced value
            var type = $(this).attr('type');
            if (type.toLowerCase() == "text") {
                $(this).attr('value','');
            }

            // If you have another Type then replace with default value
            $(this).removeClass("input-validation-error");

        });
        $trLast.after($trNew);

        // Re-assign Validation
        var form = $("form")
            .removeData("validator")
            .removeData("unobtrusiveValidation");
        $.validator.unobtrusive.parse(form);
    });

    // 2. Remove
    $('body').on("click","a.remove",function (e) {
        e.preventDefault();
        $(this).parent().parent().remove();
    });


//3. Calculation

        $("#piece,#price").keyup(function () {
            var x = parseFloat($("#piece").val());
            var y = parseFloat($("#price").val());
            var z = parseFloat(x * y);
            $('#total').val(z);
        });
         });
</script>

}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。