asp.net javascript .click()事件未在服务器上触发

时间:2012-08-16 15:50:21

标签: javascript asp.net iis click

我有以下代码在开发机器上正常工作。但是,当我将其部署到IIS时,the .click()不会触发。

  1. 我有下拉框,当选择状态时,我添加以下代码以打开RadWindow

    if (ddlStatusID.SelectedValue.ToString() == "2")
         btnUpdateStatus.Attributes.Add("onclick", "return OpenWindow2('" + 
         ResolveUrl("~/Request/AddBillableTime.aspx?  RequestId=" + RequestId.ToString()) +  
    "','650','320');");
    else
       btnUpdateStatus.Attributes.Add("onclick", "");
    
  2. 在弹出页面中,当用户点击我添加的按钮时,请执行以下操作

    ClientScript.RegisterStartupScript(this.GetType(), "CloseWindow", 
     "ClosePopup();", true);
    
  3. 这是ClosePopup javascript。

    function ClosePopup() {
        //debugger;
        alert('This is before closing the window');
        var oWindow = GetRadWindow();
        oWindow.argument = null;
        oWindow.close();
        alert('This is after closing the window');
        oWindow.BrowserWindow.ButtonClick();
        }
    
    1. 在主窗口中,我有以下javascript,在上面的javascript的最后一行调用。

      function ButtonClick() {
      //debugger;
      alert('This is before button click!');
      var btnUpdateStatus =   
      document.getElementById('ctl00_ContentPlaceHolder1_btnUpdateStatus');
      alert('This is getting the button!');
      btnUpdateStatus.setAttribute("onclick", "");
      alert('This is setting the button!');
      btnUpdateStatus.click();
      alert('This is after clicking the button!');
      

      }

    2. 我已经使用警报来检查javascript函数执行的程度。

      当我使用Visual Studio运行它时,以及当我在本地IIS服务器中托管它时,整个功能正常工作。但是,当我将其部署到服务器时,click()事件将停止触发。

      如果代码中有任何错误,请告诉我。

2 个答案:

答案 0 :(得分:2)

当我被分配到一项新任务时,我没有时间研究这个问题。但是一旦我回到同一个任务中就不得不修复它。我从我的一个朋友那里得到了一些帮助来解决这个问题。我不得不稍微改变当前的逻辑,并解释了下面的解决方案。

我更改了ButtonClick功能,如下所示,使用__doPostBack功能创建一个回到页面的手动帖子。

function ButtonClick() {
__doPostBack('btnUpdatePage', '');
return;
}

我从页面的Page_Load方法处理了帖子。

if (Request["__EVENTTARGET"] == "btnUpdatePage")
{
     UpdateStatus();
}

如果回发事件目标与__doPostBack方法中指定的事件目标匹配,那么我调用了一种方法来更新状态。

这样我可以避免这个问题。但我不知道为什么事件没有使用旧的ButtonClick函数触发。

答案 1 :(得分:0)

如果代码在你的电脑上工作正常,那么对我来说唯一可疑的就是这两行:

1. document.getElementById('ctl00_ContentPlaceHolder1_btnUpdateStatus');

2. btnUpdateStatus.setAttribute("onclick", "");

对于第一行,您应该这样做,而不是:

document.getElementById('<%=btnUpdateStatus.ClientID%>');

对于第二行,似乎您将onclick处理程序设置为"",基本上不应该执行任何操作。

这可能不是问题所在。最好的办法是使用Firebug调试它,在正在调用的相应Javascript函数中放置一个断点。