asp.net 動的に作ったボタンのイベントが動作しない

タグの編集
投稿者 nin  (社会人) 投稿日時 2017/1/7 14:55:34
お世話になります

ASP.NETを使って、Table1にサブフォルダと、ファイルの一覧を表示させて、ファイルの
場合は、リンクを作成
サブフォルダの場合は、ボタンを作成し、該当ボタンを押すと、サブフォルダ内
のファイル一覧を表示させようとしていますが、動的に作ったボタンを押しても
btn_Clickのイベントが動作しません 色々試しましたが、小生の技量ではお手上げ状態
です
長ったらしく、コード記載してすいません 何が原因でしょうか?
よろしくお願いします

    Inherits System.Web.UI.Page
    Dim conTextBox(1000) As System.Web.UI.WebControls.TextBox ' TextBoxの数 
    Dim conLiteral(1000) As System.Web.UI.WebControls.Literal


    Protected Sub Button2_Click(sender As Object, e As System.EventArgs) Handles Button2.Click

        Dim namae(10) As String
        Dim icount As Integer = 1
        Dim MenuBtn(500) As System.Web.UI.WebControls.Button


        'ファイルをすべて取得する 
        Dim di As New System.IO.DirectoryInfo("d:\d\open\test"'表示させるフォルダの場所を指定 
        Dim files As System.IO.FileInfo() = _
            di.GetFiles("*.*", System.IO.SearchOption.TopDirectoryOnly)

        Dim subFolders As System.IO.DirectoryInfo() = _
            di.GetDirectories("*", System.IO.SearchOption.AllDirectories)


        'サブフォルダー名ボタン作成 
        For Each subFolder As System.IO.DirectoryInfo In subFolders
            Dim tbRow1 As New TableRow
            Dim tbCell As New TableCell

            conTextBox(icount) = New System.Web.UI.WebControls.TextBox
            conTextBox(icount).BorderStyle = BorderStyle.None
            conTextBox(icount).Width = System.Web.UI.WebControls.Unit.Parse("20px")
            MenuBtn(icount) = New System.Web.UI.WebControls.Button


            tbCell.Controls.Add(conTextBox(icount))
            conTextBox(icount).Text = icount
            MenuBtn(icount).Text = subFolder.Name
            AddHandler MenuBtn(icount).Click, AddressOf btn_Click
            tbCell.Controls.Add(MenuBtn(icount))
            tbRow1.Cells.Add(tbCell)
            Table1.Rows.Add(tbRow1)
            icount = icount + 1

        Next

        'ファイル名を表示 
        For Each f As System.IO.FileInfo In files
            Dim tbRow2 As New TableRow
            Dim tbCell As New TableCell

            conLiteral(icount) = New System.Web.UI.WebControls.Literal
            conTextBox(icount) = New System.Web.UI.WebControls.TextBox
            conTextBox(icount).BorderStyle = BorderStyle.None
            conTextBox(icount).Width = System.Web.UI.WebControls.Unit.Parse("20px")
            tbCell.Controls.Add(conTextBox(icount))
            conTextBox(icount).Text = icount
            tbRow2.Cells.Add(tbCell)

            namae(1) = "/open/test/" & f.Name 'ブラウザから表示する場所を指定 
            namae(2) = f.Name
            conLiteral(icount).Text = "<A href=""" & namae(1) & """>" & namae(2) & "</a><BR>"
            tbCell.Controls.Add(conLiteral(icount))
            tbRow2.Cells.Add(tbCell)

            Table1.Rows.Add(tbRow2)

            icount = icount + 1
        Next


    End Sub


    Private Sub btn_Click(ByVal sender As System.ObjectByVal e As System.EventArgs)
        Dim failenam As String = CType(sender, Button).Text
        Dim namae(10) As String
        Dim icount As Integer = 1
        Dim MenuBtn(500) As System.Web.UI.WebControls.Button

        'ファイルをすべて取得する 
        Dim di As New System.IO.DirectoryInfo("d:\d\open\test\" & failenam) '表示させるフォルダの場所を指定 
        Dim files As System.IO.FileInfo() = _
            di.GetFiles("*.*", System.IO.SearchOption.TopDirectoryOnly)

        'ファイル名を表示 
  '省略 

    End Sub

End Class

投稿者 nin  (社会人) 投稿日時 2017/1/8 12:30:58
すいません
ずいぶん久しぶりに作ったので、ボケていました
イベント発生時、ポストバックされるのを忘れていました。トホホ。
新しいフォームのLoadイベントに記述して解決しました