1

WebUserControl を動的に追加しました。それを取得したかったのですが、これが私の話です:(方法がわかりません。これが私のコードです。よろしくお願いします。

 Protected Sub btngenerate_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btngenerate.Click

    For Each Str As String In Tstring
        Dim addressControl As WebUC = CType(LoadControl("WebUC.ascx"), WebUC)

        addressControl.plbl.Text = Str
        form1.Controls.Add(addressControl)
    Next


End Sub



Protected Sub btnOk_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnOk.Click


 'here is what i did , but it didn't work
 'For Each ct As WebUCIn form1.Controls
 ' ltlres.Text = ltlres.Text & ", " & ct.plbl.Text & " " & ct.ptxt.Text

 'Next

End Sub
4

2 に答える 2

0

そのコントロールを動的に追加したため、ポストバックするときに、その ViewState とポストバック データを関連付けるために再度追加する必要があります。

イベントで再作成し、Initコントロール イベント (ボタン クリックなど) を処理すると、そのイベントが存在し、そのデータ (子コントロールのコンテンツなど) が関連付けられます。

別のイベントへの応答としてコントロールを作成しているため、 で再作成するかどうかを知るために、Session にある種のフラグ (ブール値? カウンター?) を保持する必要がありますInit

于 2013-02-24T12:34:29.093 に答える
0

コントロールを動的に追加するには規則があります。Init必要な限り、それらを再度追加する必要がありました。

ボタンのクリックでそれらを追加するだけで、最初にそれらが表示されますが、それらからの入力を受け取ることはありません.

セッションにフラグを保持して、追加する必要があることを示すことができますInit

于 2013-02-24T12:26:57.830 に答える