1

我有一个模式弹出窗口,其中包含一个隐藏按钮的 targetId。我希望在单击网格中的按钮时出现弹出窗口,但该按钮是在代码后面编程的,因此 targetId 将无效......

所以我想尝试将gridview按钮的onclientclick事件设置为隐藏按钮的onclientclick事件。这是可能的还是我应该以另一种方式去做。

这是我创建网格按钮的方式

 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
4

2 回答 2

5

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

  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

于 2009-05-18T14:59:51.083 回答
1

这样做是有可能的,它需要您启动按钮“DoPostback”功能。

尝试调查Page.ClientScript.GetPostBackClientHyperlink方法

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

它看起来像这样

javascript:document.getElementById('clientSideID').click();
于 2009-05-18T15:02:15.527 回答