如何通过AJAX调用更新HTML表?

时间:2014-06-18 14:08:47

标签: javascript jquery ajax asp.net-mvc

伙计我在ASP.net MVC home视图中有一个html表。现在,表格最初是通过模型中的数据填充的。现在点击主页上的某些按钮,我想更新表中的数据,即清除表中的数据,并用ajax调用中的数据更新。

这是我的表格:

<article class="scrlable">
<table>
    <tr>
        <td>#</td>
        <td>Name</td>
        <td>Status</td>
        <td>Since</td>
    </tr>

    @{   
    int srno = 1;
    foreach (var pendingResponseModel in Model.hrPendingResponseList)
    {
    <tr>
        <td>@srno</td>
        <td>@pendingResponseModel.CandidateName</td>
         <td>@pendingResponseModel.CandidateLifeCycleStatusName</td>
          @if (pendingResponseModel.DayDifference == "1")
                {
          <td>@(pendingResponseModel.DayDifference) day</td>
                    }
                    else
                    {
                        <td>@(pendingResponseModel.DayDifference) days</td>
                    }
                </tr>
                    srno++;
                }
            }
        </table>
    </article>

这是我的ajax电话:

function GetStatusWise(control, departCode) {
    $.ajax(
        {
            type: "GET",
            url: "...URL..." + departCode,
            dataType: "json",
            crossDomain: true,
            async: true,
            cache: false,
            success: function (data) {
                $.each(data.data, function (index, value) {
                 // UPDATE TABLE HERE...
                });
            },
            error: function (x, e) {
                alert('There seems to be some problem while fetching records!');
            }

        }
    );
}

从ajax调用返回的数据是JSON。它有Name,Status和Since元素。可以使用value.CandidateNamevalue.Status

查看这些内容

现在我想用我通过AJAX调用获得的值来更新上表的值。我该怎么做呢?是否可以替换整篇文章?

注意:我通过ajax调用得到多个值,这就是为什么我在函数上放置一个循环。

3 个答案:

答案 0 :(得分:3)

我已通过以下代码解决了我的问题

function GetStatusWise(control, departCode) {
    $.ajax(
        {
            type: "GET",
            url: WebApiURL + ".....URL...." + departCode,
            dataType: "json",
            crossDomain: true,
            async: true,
            cache: false,
            success: function (data) {
                var srno = 1;
                $('#tblPendingHrResponse').find($('.trTblPendingHrResponse')).remove();

                $.each(data.data, function (index, value) {
                    random(value, srno);
                    srno++;
                });
            },
            error: function (x, e) {
                alert('There seems to be some problem while fetching records!');
            }

        }
    );
}

function random(values, srno) {
        var daydifference = values.DayDifference == 1 ? '<td>' + values.DayDifference + ' day </td>' : '<td>' + values.DayDifference + ' days </td>';

        var tr = '<tr class="trTblPendingHrResponse">' +
        '<td>' + srno + '</td>' +
        '<td>' + values.CandidateName + '</td>' +
        '<td>' + values.CandidateLifeCycleStatusName + '</td>' +
         daydifference + '</tr>' + srno++;

        $('#tblPendingHrResponse').append(tr);

    }

答案 1 :(得分:1)

您可以使用jQuery追加。

success: function (data) {
    $.each(data.data, function (index, value) {
        $("table").html("Your HTML to updated");
    });
},

答案 2 :(得分:0)

让你的控制器方法返回包含你的表或文章的部分。

[HttpPost]
public virtual ActionResult GetTable(ArticleViewModel viewModel)
{
    // do stuff
    return PartialView("_ArticleTable", viewModel);
}

然后更新jQuery中的表或文章:

你可以使用jQuery追加。

success: function (data) {
    $("table").html(data);
},