2009-05-18 99 views
1

我有一個模式彈出,有一個targetId隱藏按鈕。我希望彈出窗口發生時,單擊網格中的按鈕,但該按鈕編程後,因此targetId將無效...是否可以觸發另一個按鈕的onclientclick事件?

所以我想嘗試設置gridview的按鈕的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 

回答

5

我假設你正在使用的網絡形式。如果是的話,是的,這是非常有可能的。 執行以下操作。

  1. function openModal(btnId){ 
        btn = document.getElementById(btnId); 
        btn.click(); // this should fire the click even of the button 
    } 
    
  2. 發車按鈕創建一個JavaScript函數添加的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

+0

哇。你釘了它!謝謝! – Eric 2009-05-18 15:19:52

1

有可能這樣做,它需要你斷火的按鈕「DoPostback」功能。

嘗試尋找到Page.ClientScript.GetPostBackClientHyperlink method

或者您可以使用JavaScript和.click()事件,但我認爲,限制你的IE瀏覽器,不知道的,雖然。

它看起來像這樣

javascript:document.getElementById('clientSideID').click(); 
相關問題