繁体   English   中英

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

[英]asp.net javascript .click() event not firing on server

我有以下代码在开发机器上正常工作。 但是,当我将其部署到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); 

这是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!'); 

    }

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

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

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

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

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

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

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

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

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

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

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

1. document.getElementById('ctl00_ContentPlaceHolder1_btnUpdateStatus');

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM