我是编码javascript / VB.NET的新手,我在使用Button2 onClick事件时遇到了麻烦。
View.aspx.vb中的Button1的Click-Behind Click事件
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
}
PageOasad of Page.aspx
Me._hiddenBtnComments.Attributes.Add("onclick","ShowModal('SomePage.aspx','SomePage','somestyle')")
问题是只有Javascript代码被触发并且Modal页面被打开。但是,在关闭模态页面后,不会触发代码隐藏单击事件。任何想法代码有什么问题?
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,因为它将是用户期望的,
答案 0 :(得分:1)
click()
不会在JavaScript中触发Click事件。使用jQuery或使用dispatchEvent
请参阅此帖子:How to simulate a click with JavaScript?
答案 1 :(得分:0)
为什么不调用ShowModal函数而不是触发事件?
如果您需要动态获取参数,可以向元素添加数据属性。