2012-12-18 49 views
0

无法读取页面加载浏览器压回button.But出现这种情况仅在第一个函数调用后的下拉菜单中选择值之后,选择下拉列表中值在页面加载。 我会详细解释: 当页面加载最初我附上一段AJAX脚本如下图所示无法读取按下浏览器的后退按钮

this.Page.ClientScript.RegisterStartupScript(this.GetType(), "onload", "_Initialize_Chart();", true); 

下面是JavaScript AJAX功能

function _Initialize_Chart() { 

    var selectedDeptId = $(ddlQueues).val(); 
    var selectedMonth = $(ddlMonth).val(); 
    var selectedYear = $(ddlYear).val(); 
    $.ajax({ 
     type: "GET", 
     url: ajaxCallHandlerUrl, 
     data: { 
      OpCode: "GetCallAverageMonthlyReportForGraph", 
      Params: "DeptId^" + selectedDeptId + "~Month^" + selectedMonth + "~Year^" + selectedYear 
     }, 
     dataType: "xml", 
     beforeSend: function() { 
      $('#' + lblCallAverageDetails).html(''); 
      document.getElementById(chartdiv).style.backgroundImage = "url('../images/ajax-loader_new_.gif')"; 
     }, 
     success: function (responseString) { 
      document.getElementById(chartdiv).style.backgroundImage = ""; 
      _Load_Chart(responseString); 
      _Load_CallAverageGridData(); 
     }, 
     error: function (xhr, errorType, exception) { 
      var errorMessage = exception || xhr.statusText; 
      alert("There was an error Initializing Charts :: " + errorMessage); 
     } 
    }); 
} 


    function _Load_CallAverageGridData() { 
    var selectedDeptId = $(ddlQueues).val(); 
    var selectedMonth = $(ddlMonth).val(); 
    var selectedYear = $(ddlYear).val(); 
    $.ajax({ 
     type: "GET", 
     url: ajaxCallHandlerUrl, 
     data: { 
      OpCode: "GetCallAverageReportDetail", 
      Params: "DeptId^" + selectedDeptId + "~Month^" + selectedMonth + "~Year^" + selectedYear 
     }, 
     dataType: "", 
     success: function (responseString) { 
      $('#' + lblCallAverageDetails).html(responseString); 
     }, 
     error: function (xhr, errorType, exception) { //Triggered if an error communicating with server 
      var errorMessage = exception || xhr.statusText; //If exception null, then default to xhr.statusText 
      alert("There was an error Fetching Call Average Data :: " + errorMessage); 
     } 
    }); 
} 

所以这个JavaScript加载页面内容这是一种图形和一个网格。 在点击网格中的行,其导航到另一个页面。 现在在按下浏览器的后退按钮时,上面显示的javascript最初叫,但var selectedMonth = $(ddlMonth).val();不给我的实际选择值的值下拉列表。 在第一Ajax调用的成功,另一个Ajax调用_Load_CallAverageGridData();是由我在这家得到正确的var selectedMonth = $(ddlMonth).val();值。 任何一个可以抛出一些轻为什么发生这种情况。

回答

0

您在页面加载

this.Page.ClientScript.RegisterStartupScript(this.GetType(), "onload", "_Initialize_Chart();", true); 

代码不是在页面加载执行,它excecute你需要使用URL散列函数。 它只需使用这

,你点击页面上的产品/图像那里调用的onclick javascript函数即

function getHashOnBack(valueget) 
{ 
    location.hash = "#backTo=" + $(window).scrollTop();$(document).height(); 
} 

现在,把

$(document).ready(function() 
{ 
var ab = window.location.hash.substring(1).split("="); 
if (ab[0] == "backTo") 
{ 
// this would be called automatically when back putton pressed and hav #back=1234 etc. // value in url 

$(window).scrollTop(parseInt(ab[1])); 
} 
}