質問

非表示のボタンに 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 フォームを使用していると仮定します。もしそうなら、はい、その可能性は十分にあります。以下をせよ。

  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

scroll top