Member 10870943 Ответов: 1

Как обновить одну строку в списке строк в ASP.NET MVC в webgrid без перезагрузки страницы


У меня есть список записей в таблице, и я привязываю данные к веб-сетке. У меня есть кнопка редактирования для каждой строки, если я нажму на нее, я должен обновить и показать обновленные данные в webgrid без перезагрузки страницы.

Что я уже пробовал:

Я ничего не пробовал у меня есть задание сделать на нем

1 Ответов

Рейтинг:
2

David_Wimbley

Вы можете использовать HTML-помощник Ajax.BeginForm в MVC, а затем в onSuccess или onComplete callback вы можете использовать jquery для вызова действия контроллера, чтобы получить обновленные табличные данные и обновить табличные данные.

Учитывая, что вы не опубликовали никакого кода, я делаю некоторые предположения (например, что при редактировании записи в таблице у вас есть код, который знает, как загрузить эти данные в форму)

Таким образом, вы начнете с использования формы Ajax.Begin (предупреждаю, этот код, предназначенный для того, чтобы направить вас в правильном направлении, вероятно, не будет компилироваться так, как я только что ввел его здесь).

@using (Ajax.BeginForm("YourControllerAction", "ControllerName", null, new AjaxOptions()
{
    OnBegin = "aJavascriptFunctionOnBegin",
    OnFailure = "aJavascriptFunctionOnFailure",
    OnSuccess = "aJavascriptFunctionOnSuccess",
    OnComplete = "aJavascriptFunctionOnComplete"
}, new { }))
{
<!-- Your edit form for the record goes here -->
}


// Implement the other On functions above in similar manner
function aJavascriptFunctionOnSuccess(data){
    $.ajax({ 
    }).success(function(tabledata){ 
        $("#yourtableid tbody").html(tabledata);
    });
}


public class YourController : Controller 
{
    public JsonResult YourAction(int tablerecordid)
    {
        var tabledata = //do something here to get table data updated from saving/updating/deleting a record.
        return Json(new { tabledata }, JsonRequestBehavior.AllowGet);
    }

}