【问题标题】:Unable to read the selected drop down list value on page load after pressing browser back button按下浏览器后退按钮后,无法在页面加载时读取选定的下拉列表值
【发布时间】:2012-12-05 13:59:21
【问题描述】:

按下浏览器后退按钮后,无法在页面加载时读取选定的下拉列表值。但这仅在第一次函数调用期间发生。 我会详细解释: 当页面最初加载时,我附加了一个 ajax javascript,如下所示

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(); 的值。 任何人都可以解释一下为什么会发生这种情况。

【问题讨论】:

    标签: c# javascript jquery ajax browser


    【解决方案1】:

    页面加载中的代码

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

    不会在页面加载时执行,要执行它,您需要使用 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]));
    }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多