【问题标题】:Refresh table onclick with jquery in mvc在mvc中使用jquery刷新表onclick
【发布时间】:2017-12-08 00:16:13
【问题描述】:

我的视图中有一张桌子。我在我的视图中添加了一个日期选择器,它将两个选定的日期发布到我的控制器中(dateFrom 和 dateTo)。然后我比较对象的日期并将它们传回视图。数据传递一切正常,但我在刷新表格和显示新数据时遇到了问题。

我尝试了一些不同的方法,但基本上是这样的。此功能在点击日期选择器按钮时运行:

function Search() {
    $(".myTable").empty();
    var dateFrom = $("#dateFrom").val();
    var dateTo = $("#dateTo").val();

    $.ajax({
        url: "/myDirectory/myController",
        method: "POST",
        data: {
            dateFrom: dateFrom,
            dateTo: dateTo
        },
        success: function (asd123) {
            $(".myTable").show();
        }
    })
}

不过,这个函数只是清空数据而不显示新数据。我应该在这里看什么?

【问题讨论】:

  • 你没有绑定你返回的数据到你的表 $(".myTable");它应该是 $(".myTable").html(asd123);
  • 嗯,你是什么意思?在我看来,我遍历我的对象并将它们添加到我的表中。有什么我想念的吗?
  • 更新了您的代码检查如下。

标签: jquery asp.net-mvc datepicker


【解决方案1】:

您需要为表格内容创建单独的部分视图,以便您可以通过 Ajax 调用刷新该内容,请遵循以下流程:

您的主要视图 Ajax Call 应该是:

function Search() {
$(".myTable").empty();
    var dateFrom = $("#dateFrom").val();
    var dateTo = $("#dateTo").val();
$.ajax({
   url: "/myController/PartialViewAction",
   type: "POST",
   dataType: "html",
   data: {
            dateFrom: dateFrom,
            dateTo: dateTo
        },
   success: function (data) {
       $(".myTable").html(data);
       $(".myTable").show();
     
   }
});
}

主视图:删除表格内容 Div 并添加部分视图并在下面添加而不是那个

//这里是在主视图上调用Partial view的代码

<div id="TableContent" Class="myTable">
    @Html.Partial("_PartialViewForTable", Model)
</div>

创建名为“_PartialViewForTable”的部分视图并添加邮件视图的表格内容 //不要在局部视图上调用Layout Page

@model Application.Model.YourModel
<div id="TableData">
//Your Table Data 
</div>

你的控制器动作应该是:

//Action 是返回局部视图而不是主视图

[HttpPost]
public ActionResult PartialViewAction(DateTime? dateFrom = null, DateTime? dateTo= null)
{
 YourModel objYourModel = new YourModel();
 //Bind data in objYourModel and retun to your view
 return PartialView("_PartialViewForTable", objYourModel);
}

【讨论】:

  • 非常感谢!这显示了我搜索时的数据。仍然很奇怪,即使我遵循了您的代码示例,它也会在我的表格中呈现整个视图......所以我得到了双重视图。即使我使用的是局部视图,我还缺少什么导致双重视图?
  • 哦。它呈现“整个视图”,因为当我 PartialView(myview,mymodel)时重新呈现标题布局。从 PartialView 调用“来”时设置 Layout = null 有什么好的解决方法吗?
  • 您需要制作表格数据的部分视图并在主页视图中调用该视图。如果没有完成,请尝试一下,我将与您分享它的代码,然后它会起作用。
  • 我已经更新了上面的代码,以制作单独的局部视图并返回主视图,您必须遵循这种类型的过程,然后这将起作用。
  • 如果您遇到任何问题,请告诉我,否则请标记此答案已被接受,谢谢。
猜你喜欢
  • 1970-01-01
  • 2010-11-26
  • 1970-01-01
  • 1970-01-01
  • 2010-09-22
  • 1970-01-01
  • 2016-12-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多