【问题标题】:Is it possible to fire off another button's onclientclick event?是否可以触发另一个按钮的 onclientclick 事件?
【发布时间】:2009-05-18 14:48:19
【问题描述】:

我有一个模式弹出窗口,其中包含一个隐藏按钮的 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

【问题讨论】:

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


    【解决方案1】:

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

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

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

      gridButton.OnClientClick = String.Format("openModal('{0}');", modalButton.ClientId))
      

    这会将触发模态窗口的按钮的客户端 ID 设置为 javascript 函数。如果你需要用其他数据填充模态窗口,你也应该在这个函数中完成。

    您使用的是 ASP.Net AJAX 控制工具包吗?或者是其他东西?这假定工具包。

    此外,您已将按钮的可见性设置为隐藏,但不要在服务器端设置 Visible=False 属性,因为这不会呈现按钮。要隐藏它,您需要使用客户端属性style="display:none"

    此链接可能会有所帮助:http://forums.asp.net/t/1066506.aspx

    【讨论】:

    • 哇。你搞定了!谢谢!
    • 如果我想在此功能触发之前更改客户端单击时文本框的文本怎么办?我想这样做的原因是因为该模式显示了一个网格视图,其中的数据依赖于来自文本框的数据。该文本框将从gridview的行数据中获取它的数据。知道如何在同一个 onclientclick 上完成所有这些操作吗?
    • 在设置onclientclick属性时,可以嵌套多个javascript语句,只要它们用“;”分隔即可。如:gridButton.OnClientClick = String.Format("getElementById('txtBoxId').text='new text'; openModal('{0}');", modalButton.ClientId))
    【解决方案2】:

    有可能这样做,它需要你触发按钮“DoPostback”功能。

    尝试查看Page.ClientScript.GetPostBackClientHyperlink method

    您也可以使用 javascript 和 .click() 事件,但我认为这会将您限制为 IE 作为浏览器,但不确定。

    应该是这样的

    javascript:document.getElementById('clientSideID').click();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-23
      • 1970-01-01
      • 2011-05-05
      • 2017-12-18
      • 2021-12-21
      • 1970-01-01
      相关资源
      最近更新 更多