当我们从另一视图导航回来时,如何在一个视图中重新加载数据表?

时间:2019-08-14 11:50:40

标签: javascript view datatable asp.net-mvc-5

我有一个查看页面,我的数据表通过单击搜索按钮在其中加载数据。在该表中,有一个编辑选项,当我单击“编辑”图标时,它将带我到另一个页面来编辑所选的行数据。编辑后,当我单击“后退”按钮时,将我带到主视图页面,但表已清除。为此,我们需要在document.ready()中编写代码,但是当我们从菜单页面转到时,我不希望我的表在单击搜索按钮之前加载数据。 我的代码是:  有关薪酬视图中的数据表:

function Search() {
            if ( $.fn.DataTable.isDataTable( '#tblPay' ) ) {
      $( '#tblPay' ).DataTable().destroy();
        }
         var txtVal = $("#txtDescription").val();
            $('#tblPay' ).DataTable({  
               "searchable": false,
                "ajax": {
                    url: '@Url.Action("GetValues")',
                    type: 'POST',
                    data: { txtVal },
                    dataSrc: 'data',
                },
                "columns": [{ data: "Id" },
                { data: "Description" },
                {
                          "render": function (data, type, full, meta)
                          { return '<a class="text-center" href="/Master/Details/' + full.Id + '"><i class="fa fa-bars"></i></a>'; }
                    },
                   {
                          "render": function (data, type, full, meta)
                          { return '<a class="text-center" href="/Master/Edit/' + full.Id + '"><i class="fa fa-edit"></i></a>'; }
                      },               
                   {
                           data: null, render: function (data, type, row) {
                               return '<a href="#"  onclick=DeleteData("' + row.Id + '"); ><i class="fa fa-trash-o"></i></a>';
                           }
                       },               
                ]
            });
        }

“我的编辑”页面中的javascript以保存数据:

 <script type="text/javascript">
       function Save() {
        var txtVal = $("#txtId").val();
         var txtVal1 = $("#txtDescription").val();
        if (txtVal1 == "") {
            alert("Please Enter Description!");
        }
        else {
             var url = "/Master/EditSave";

                    $.ajax({
                        url: url,
                        data: {txtVal,txtVal1},
                        cache: false,
                        type: "GET",
                        success: function (result) {
                   if (result.success == 'success') {
                 alert(result.message);
             }
            else {
                 alert(result.message);
            }
        }
                          });
                         $('input[type="text"]').val("");
            }
    }
    </script> 

编辑页面保存和返回的两个按钮:

 <div class="btn-group">
                                    <a id="btnSave" onclick="Save()" name="btnSave" class="btn btn-block btn-success btn-flat"><span class="hide-on-mobile">Save</span>&nbsp;<i class="fa fa-save"></i></a>
                                </div>
                                <div class="btn-group">
                                    <a href="/Master/Pay" id="btnBack" name="btnBack" class="btn btn-block bg-purple btn-flat"><span class="hide-on-mobile">Back </span><i class="fa fa-step-backward "></i></a>
                                </div>

当我仅从编辑页面返回时,是否有任何方法可以在付款页面中重新加载数据表?

1 个答案:

答案 0 :(得分:0)

如果我理解正确,那么您有一个数据表,当您单击数据表中的行/单元格时,该表会将您定向到另一页。

告诉数据表页面加载表XYZ(无论需要执行什么操作)的一种简单解决方案是使用www.example.com/index.php?reload这样的URL参数将用户从您的编辑页面引导回该页面。

在您的Javascript入口点(例如,文档加载)中,您将放置以下内容

urlParams = new URLSearchParams(window.location.search);
if (urlParams.has('reload')){
    //your datatable reload code
}