使用Ajax更新详细信息视图

时间:2011-09-10 16:04:17

标签: jquery ajax asp.net-mvc-3

我正在使用MVC3 Jquery和AJAX来生成List / Details视图。

现在我有一些像这样的代码:

$(document).ready(function () {
      $('#example tbody tr').click(function () {
          alert('row was clicked');
          $('#Container').load('../task/create/').fadeIn("slow");

      });
  });

我的HTML如下

<table id="example" border = "2">
    <thead>
    <tr style="border-style:solid"  class="simplehighlight">
        <th>
            Name
        </th>
        <th>
            Description
        </th>
        <th>
            tblStatu
        </th>
        <th>
            DueDate
        </th>
        <th>
            AssignedTo
        </th>
        <th>
            CreatedOn
        </th>
        <th>
            CreatedBy
        </th>
        <th>
            ModifiedOn
        </th>
        <th>
            ModifiedBy
        </th>
        <th></th>
    </tr>
    </thead>


    <tbody>
@foreach (var item in Model)
{
    <tr style="border-style:solid">
        <td style="border-style:solid">
            @item.Name

            @*@Html.DisplayFor(modelItem => item.Name)*@
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Description)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.tblStatu.Name)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.DueDate)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.AssignedTo)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.CreatedOn)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.CreatedBy)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.ModifiedOn)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.ModifiedBy)
        </td>
        <td>
            @Html.ActionLink("Edit", "Edit", new { id = item.TaskId }) |
            @Html.ActionLink("Details", "Details", new { id = item.TaskId }) |
            @Html.ActionLink("Delete", "Delete", new { id = item.TaskId })
        </td>
    </tr>
}
   </tbody> 

现在,我如何根据表中的行选择在我的URL任务/ .....中添加参数?

1 个答案:

答案 0 :(得分:1)

像(未经测试) -

$(document).ready(function () {
      $('#example tbody tr').click(function () {
          alert('row was clicked');
          var rowid = $(this).attr("id");
          $('#Container').load('../task/create/',{rowid: rowid}).fadeIn("slow");

      });
  });

那应该使用load函数的[data]参数将一些数据传递回你正在调用的url - 数据将被POST回来。

修改

这是最终的工作代码 -

$(document).ready(function () { 
     $('#example tbody tr').click(function () { 
      var rowid = $(this).find('td#Name').html(); 
      //alert(rowid); // rowid = 1;
      $('#Container').load('../task/edit/' + $.trim(rowid)).fadeIn("slow"); 
     }); 
 });