$@Html.DisplayFor(正在给我一个表上的数字,我想使用该数字,以便IF给我该值

时间:2018-11-14 01:28:24

标签: html asp.net razor

这是我的代码,我正在使用一个表,该表为我提供了一个特定的数字,可以说是1000,如果我想使用该存储的数字,那么当我单击按钮时我的变量(“总计”)为1000,我不确定如何获取,我尝试了item.Salario,Model.Salario,它不起作用,我不知道它是否有可能

@model IEnumerable<Planilla.Models.Planillas>
@{
ViewBag.Title = "Index";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>Planillas</h2>
<p>
@Html.ActionLink("Agregar Planilla", "Nuevo", null, new { @class = "btn btn- 
success" })
</p>
<table class="table">
<tr>
    <th>
        @Html.DisplayNameFor(model => model.Empleado.Nombre)
    </th>
    <th>
        @Html.DisplayNameFor(model => model.Salario)
    </th>


    <th></th>
</tr>


@foreach (var item in Model)
{
    <tr>
        <td>
            @Html.DisplayFor(modelItem => item.Empleado.Nombre)
        </td>
        <td>
            $@Html.DisplayFor(modelItem => item.Salario)
        </td>


        <td>
            @Html.ActionLink("Edit", "Modificar", new { id = item.id }, new 
 { @class = "btn btn-primary" }) |

                <button onclick="myFunction()">Calcular </button>

                <p id="demo"></p>

                <script>
                    function myFunction() {
                        var Salario = item.Salario;

                      var total = Salario;
                        var mtotal;
                        if (total >0) {
                            mtotal = "su total es " + total;
                        } else {
                            mtotal = "Salario tiene que ser mayor que 0";
                        }
                        document.getElementById("demo").innerHTML = mtotal;
                    }
                </script>
            </td>
        </tr>
    }
</table>

基本上

   $@Html.DisplayFor(modelItem => item.Salario)

给我一​​个特定的数字,我想将该数字显示在 我的如果在以下部分中

function myFunction() {
                        var Salario = item.Salario;

这样,当我单击按钮时,我会得到该商品的编号。萨拉里奥在桌子上给了我

我该怎么做?

1 个答案:

答案 0 :(得分:0)

我在您的代码中注意到的几个问题。

首先,在循环中有一个带有p的{​​{1}}元素。这意味着您的代码将生成多个具有相同id="demo"属性值的p元素。那是无效的HTML标记! ID应该是唯一的。

您还正在循环内定义Id函数定义!运行您的代码并检查页面的查看源,然后查看您想要的内容。我们是否需要定义N次此方法?所有行的行为都相同,只有myFunction的值不同:)

您可以做的是,可以将要传递的值保留在按钮的HTML5数据属性中,然后使用不引人注目的JavaScript来连接按钮上的click事件。单击按钮后,可以使用Salario获取对单击的按钮的引用,从data属性读取值并将其用于计算。要更新当前行的this元素,可以使用jQuery p方法和closest方法之类的相对方法。

这是一个使用jQuery库进行DOM操作的工作示例。

find

您可以看到我在按钮上设置了@foreach (var item in Model) { <tr> <td> @Html.DisplayFor(modelItem => item.Empleado.Nombre) </td> <td> $@Html.DisplayFor(modelItem => item.Salario) </td> <td> <button data-salario="@item.Salario" calculate>Calcular </button> <p result></p> </td> </tr> } 属性,它的值是项目的data-salario属性。我还向Salario标签添加了result属性,我将使用该属性在jQuery选择器中获取该元素(有些人喜欢为此添加css类,但我没有)。我也对按钮做了同样的事情(添加了p属性,但是我们也可以使用calculate属性。

data-salario