0

次のコードを使用して、VB.NETを使用して.NETで1x1ピクセルの画像のグリッドを生成しようとしています。

    i=1から500の場合
        Dim img As New ImageButton
        img.ID = "ibtn" + i.ToString
        img.ImageUrl = "images / design / click.gif"
        form1.FindControl( "upperpanel")。Controls.Add(img)
    次

問題は、これをpage_loadイベントで実行すると、HTMLの生成に非常に長い時間がかかることです。コントロールのレンダリングを高速化するために誰かが私を助けてくれますか?また、各画像ボタンにClickイベントを追加したいと思います。どうやってやるの ?? ありがとう

4

1 に答える 1

1

さて、最初にすることは、パネルコントロールを一度取得することです。次に、クリックメソッドを作成してから、ハンドラーを追加します。これは、ページ読み込みイベントの前に行う必要があります。ハンドラーを追加する必要がある場合は、page_Initイベントを使用してボタンを作成します。

    Private Sub WebForm1_Init(sender As Object, e As EventArgs) Handles Me.Init
    Dim tempPanel As Panel = form1.FindControl("upperpanel")

    If tempPanel Is Nothing Then
        Return
    End If

    For i = 1 To 500
        Dim img As New ImageButton
        img.ID = "ibtn" + i.ToString
        img.ImageUrl = "images/design/click.gif"
        AddHandler img.Click, AddressOf ImageButton_Click
        tempPanel.Controls.Add(img)
    Next
End Sub

Protected Sub ImageButton_Click(sender As Object, e As ImageClickEventArgs)
    Dim tempImageButton As ImageButton = CType(sender, ImageButton)

    Select Case tempImageButton.ID
        Case "ibtn1"
                    'blah
        Case Else
    End Select

End Sub

パフォーマンスに関しては、パネルコントロールを前もって取得するとパフォーマンスが向上します。おそらくそれほど多くはありません。500個のボタンの作成には時間がかかります。

于 2013-01-26T16:20:30.943 に答える