我有一个模态弹出窗口,它有一个隐藏按钮的targetId。我想要在单击网格中的按钮时发生弹出窗口,但该按钮是在代码后面编程的,因此targetId将无效...
所以我想尝试将gridview的按钮的onclientclick事件设置为该隐藏按钮的onclientclickevent。这是可能的还是应该以另一种方式进行。
这是我如何创建网格按钮
If Not IsPostBack Then
Dim field As New TemplateField
field.HeaderText = "Sub Departments"
Dim col As DataControlField = field
GridView1.Columns.Add(col)
For i As Integer = 0 To GridView1.Rows.Count - 1
Dim btnview As New ImageButton
btnview.ImageUrl = "\images\icons\xp_ico_search_24x24.gif"
GridView1.Rows(i).Cells(3).Controls.Add(btnview)
Next
End If
答案 0 :(得分:5)
我假设您正在使用网络表单。如果是,那么是的,它很有可能。 执行以下操作。
在页面上创建一个javascript函数
function openModal(btnId){
btn = document.getElementById(btnId);
btn.click(); // this should fire the click even of the button
}
添加onclientclick事件:
gridButton.OnClientClick = String.Format("openModal('{0}');", modalButton.ClientId))
这将设置将模态窗口移动到javascript函数中的按钮的客户端ID。如果您需要使用其他数据填充模态窗口,您也应该在此函数中执行此操作。
您使用的是ASP.Net AJAX Control Toolkit吗?或者是其他东西?这假定是工具包。
此外,您已将按钮的可见性设置为隐藏,但不是服务器端的Visible=False
属性,因为这不会呈现按钮。要隐藏它,您需要使用客户端属性style="display:none"
此链接可能有所帮助:http://forums.asp.net/t/1066506.aspx
答案 1 :(得分:1)
有可能这样做,它需要你关闭按钮“DoPostback”功能。
尝试查看Page.ClientScript.GetPostBackClientHyperlink
method。
或者您可以使用javascript和.click()
事件,但我认为这限制了您作为浏览器的IE,但不确定。但/ p>
看起来像这样
javascript:document.getElementById('clientSideID').click();