【问题标题】:Document.getElementById('Button').click(); not triggering Code-BehindDocument.getElementById('Button').click();不触发代码隐藏
【发布时间】:2014-12-16 10:48:05
【问题描述】:

我是 javascript/VB.NET 编码的新手,我无法让我的 Button2 onClick 事件触发。

Page.aspx.vb 中 Button1 的代码隐藏点击事件

Protected Sub _lnbComments_Click(ByVal sender As Object, ByVal e As System.EventArgs)
           //Some Code that needs to run before opening Modal Page
           Dim Script As String = "JavaScriptCode();"
           ScriptManager.RegisterStartupScript(Me.upnToolBar, Me.upnToolBar.GetType(), "CommentsClick", Script, True)
End Sub

JS 文件

function ShowModal(page,name,style){
    var r = window.showModalDialog(page,window,style);
}
function JavaScriptCode(){
    var jsButton = document.getElementById('ct100_SiteContent__hiddenBtnComments'); //I made sure ClientID is correct
    jsButton.click() //This should trigger onClick event and OPEN modalPage
}

Page.aspx 的页面加载

Me._hiddenBtnComments.Attributes.Add("onclick","ShowModal('SomePage.aspx','SomePage','somestyle')")

问题只是 Javascript 代码被触发并打开了模式页面。但是,关闭模态页面后,不会触发代码隐藏单击事件。任何想法代码有什么问题?

Page.aspx 按钮 2 标记

<asp:Button id="_hiddenBtnComments" runat="server" style="display:none" onclick="_hiddenBtnComments_click"></asp:Button>

Page.aspx.vb 中 Button2 的代码隐藏点击事件

Protected Sub _hiddenBtnComments_click(ByVal sender As Object, ByVal e As System.EventArgs) Handles _hiddenBtnComments.Click
//Some Code that needs to run AFTER Modal Page closes.
End Sub

编辑:我的一个朋友建议使用 window.open 而不是 window.showmodaldialog() 并且触发了代码隐藏点击事件!但是,我需要使用 window.showmodaldialog,因为这将是用户所期望的,

【问题讨论】:

  • 你能显示按钮的标记吗?你是在连接点击事件(不是 JS)吗?
  • 我添加了它,我在按钮控件的onclick上声明了它。

标签: javascript asp.net vb.net


【解决方案1】:

click() 不会在 JavaScript 中触发点击事件。使用 jQuery 或使用dispatchEvent 见此贴:How to simulate a click with JavaScript?

【讨论】:

  • 我尝试使用 dispatchEvent 并且它也只触发 javascript 代码,在这种情况下是打开模式对话框/窗口的代码。
【解决方案2】:

为什么不调用 ShowModal 函数而不是触发事件?

如果您需要动态获取参数,您可以将数据属性添加到您的元素。

【讨论】:

  • 是的,这将允许模式页面打开,但我还需要代码隐藏函数 _hiddenBtnComments_click() 在模式页面关闭后执行。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-04-09
  • 2011-04-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多