在另一个页面上填写ajax成功数据不起作用

时间:2017-06-13 06:19:06

标签: jquery asp.net ajax

我正在调用来自database的数据,并希望填充控件上的数据。因此,我正在使用Ajax webmethod,如下所示

function getAllRecordForCurrentRow(val) {
        debugger;
        var row = val.parentNode.parentNode;            
        var ID = row.cells[7].innerText.trim();

        $.ajax({
            url: "VSATApprover.aspx/GET_DATA_FOR_CURRENT_RECORD_APPROVER",
            dataType: "json",
            type: "POST",
            contentType: 'application/json; charset=utf-8',
            data: JSON.stringify({ ID: ID }),
            async: true,
            processData: false,
            cache: false,
            success: function (r) {
                //alert(r.d.SAP_ID);
                $('#txtSapId').val([r.d.SAP_ID]);
                $('#txtContactdetails').val([r.d.CONTACT_DETAILS]);
                window.open('VSATUpdateForm.aspx', '_blank');

            },
            error: function (xhr) {
                alert('Error while selecting list..!!');
            }
        })
    }

我的问题是

需要填写success函数下的值是在另一页上,这样它就不起作用了。那么我应该如何填写值

1 个答案:

答案 0 :(得分:1)

您只需将这些值设置为某些localStorage,然后在下一页上,您需要从localStorage document.ready获取该值。请考虑以下示例:

Page 1 Ajax JS

success: function (r) {
         localStorage.setItem('SapID',r.d.SAP_ID);
         localStorage.setItem('ContactDetails',r.d.CONTACT_DETAILS);
         window.open('VSATUpdateForm.aspx', '_blank');
}

现在,您可以在localStorage中找到它,可以在下面的js下面写一下:

Page 2 JS

$(document).ready(function(){
   //get it from localStorage
   var sapid=localStorage.getItem('SapID'); 
   var contdetails=localStorage.getItem('ContactDetails');

   //set it to textboxes
   $('#txtSapId').val(sapid);
   $('#txtContactdetails').val(contdetails);
});

那就是它。