是否可以触发另一个按钮的onclientclick事件?

时间:2009-05-18 14:48:20

标签: asp.net vb.net gridview modalpopupextender modalpopups

我有一个模态弹出窗口,它有一个隐藏按钮的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

2 个答案:

答案 0 :(得分:5)

我假设您正在使用网络表单。如果是,那么是的,它很有可能。 执行以下操作。

  1. 在页面上创建一个javascript函数

    function openModal(btnId){
        btn = document.getElementById(btnId);
        btn.click(); // this should fire the click even of the button
    }
    
  2. 网格按钮上的
  3. 添加onclientclick事件:

    gridButton.OnClientClick = String.Format("openModal('{0}');", modalButton.ClientId))
    
  4. 这将设置将模态窗口移动到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();