別のボタンの onclientclick イベントを発生させることはできますか?
-
22-08-2019 - |
質問
非表示のボタンに targetId を持つモーダル ポップアップがあります。グリッド内のボタンがクリックされたときにポップアップが発生するようにしたいのですが、そのボタンはコードの背後でプログラムされているため、targetId は無効になります...
そこで、グリッドビューのボタンの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
解決
Web フォームを使用していると仮定します。もしそうなら、はい、その可能性は十分にあります。以下をせよ。
ページ上に JavaScript 関数を作成する
function openModal(btnId){ btn = document.getElementById(btnId); btn.click(); // this should fire the click even of the button }
グリッド ボタンに 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
他のヒント
それはそれを行うことが可能であり、それはボタンをオフに解雇する必要があります「DoPostback」機能ます。
Page.ClientScript.GetPostBackClientHyperlink
方法。
別の方法としては、JavaScriptと.click()
イベントを使用することができますが、私はそのかかわらずにそのブラウザとしてIEには限界あなたを、わからないと思います。
これは、次のようになります。
javascript:document.getElementById('clientSideID').click();