2009-05-18 3 views
1

私は非表示のボタンにtargetIdを持つモーダルポップアップを持っています。グリッド内のボタンがクリックされたときにポップアップが表示されるようにするには、そのボタンがコードの背後にプログラムされているため、targetIdが無効になるようにしてください...別のボタンのonclientclickイベントを起動することはできますか?

グリッドビューのボタンの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 

答えて

5

を作成する方法です。もしそうなら、それは非常に可能です。 次の操作を行います。

  1. onclientclickイベントを追加ページ上のグリッドボタンを

    function openModal(btnId){ 
        btn = document.getElementById(btnId); 
        btn.click(); // this should fire the click even of the button 
    } 
    
  2. をJavaScript関数を作成します。

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

これは、ボタンのクライアントIDを設定しますモーダルウィンドウをJavaScript関数にトリガします。モーダルウィンドウに他のデータを入力する必要がある場合は、この関数でも行う必要があります。

ASP.Net AJAX Control Toolkitを使用していますか?または、他の何か?これはツールキットを前提としています。

また、ボタンの表示を非表示に設定しましたが、ボタンをレンダリングしないため、サーバー側のVisible=Falseプロパティは表示されません。それを隠すために、あなたは、このリンクは役立つかもしれstyle="display:none"

クライアント側のプロパティを使用する必要があります:http://forums.asp.net/t/1066506.aspx

+0

ようになります。あなたはそれを釘付け!ありがとうございました! – Eric

+0

この機能が起動する前に、クライアントのテキストボックスのテキストを右クリックして変更したいのですが?私がそれをしたいのは、モーダルがテキストボックスからのデータに依存するデータでグリッドビューを表示するためです。そのテキストボックスは、グリッドビューの行データからクリックしてデータを取得します。同じonclientclickでこれをどうやってやるの? – Eric

+0

onclientclickプロパティを設定すると、 ";"で区切られている限り、複数のjavascript文をネストすることができます。として: gridButton.OnClientClick = String.Format( "getElementById( 'txtBoxId')。text = '新しいテキスト'; openModal( '{0}');"、modalButton.ClientId)) – alanquillin

1

それはそれを行うことも可能であるが、それは「DoPostback」機能のボタンをオフに解雇する必要があります。

Page.ClientScript.GetPostBackClientHyperlink methodを調べてみてください。

また、javascriptと.click()というイベントを使用することもできますが、IEではブラウザとして制限されていると思います。

それはうわー、この

javascript:document.getElementById('clientSideID').click(); 
関連する問題