繁体   English   中英

如何在JavaScript中将对象传递给函数

[英]How to pass object into function in JavaScript

我正在做关于ASP.NET MVC和ASP.NET WEB API的任务我有数据库,如:

ID, FirstName, Middle, LastName, DoB, Gender.

我使用EF和ADO.NET来建立从数据库到ASP.NET的连接。 我写了一个像DoubleClickRow这样的函数:

<script language="JavaScript">
    function *DoubleClickRow*(thisRow)
    {
         var id = thisRow.ID //Get ID from a row with double click event but it does not shown on table.
         location.href="~/Employees/Details/ + "id" //Open a new page to display employee detail with id above.
    }
</script>

还有一张表:

    <table class="table">
    <tr>
        <th>
            <p>Select</p>
        </th>
        <th>
            @Html.DisplayNameFor(model => model.FirstName)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.Middle)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.LastName)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.DoB)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.Gender)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.StartDate)
        </th>
        <th></th>
    </tr>
@foreach (var item in Model) { //Data
    <tr ondblclick="*DoubleClickRow*(this)">
        <td>
            <input type="checkbox" />
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.FirstName)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Middle)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.LastName)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.DoB)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Gender)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.StartDate)
        </td>
        <td>
            @Html.ActionLink("Details", "Details", new { id=item.EmployeeId })
        </td>
    </tr>
}
</table>

但它不起作用。 请出示我的错误,并帮我解决。

将引用传递给此行本身

更换

ondblclick="DoubleClickRow(**item**)"

ondblclick="DoubleClickRow(this)"

和DoubleClickRow方法一样

function DoubleClickRow(thisRow)
{
    var columns = thisRow.children;
    for (var counter = 0; counter < columns.length; counter++ )
    {
       console.log("column " + counter + " = " + columns[counter].innerHTML );
    }
}

你可以设置这样的id:

<tr ondblclick="*DoubleClickRow*(this)" id="@Html.DisplayFor(modelItem => item.ID)">

现在你可以得到这样的id

function *DoubleClickRow*(thisRow){
  var id = thisRow.id;
  /* your code */

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM