0

動的に生成されたテーブルがあり、テーブルの各行には、ユーザーが入力してフォームを送信するためのフォームテキストボックスがあります。私が抱えている問題は、送信されたこれらのフィールド内の値にアクセスすることです。

テーブルには Id=tableAssigneeChildren があります

これは、アクセスしようとしているテキスト ボックスの 1 つによって生成された html です。

<input name="ctl00$ContentPlaceHolder1$tChildName1" type="text" value="Test Name" id="tChildName1" />

以下のコードは、上記のテキストボックスにアクセスできるかどうかをテストするために使用しているものです。

Protected Sub btnSubmit_Click(sender As Object, e As System.EventArgs) Handles btnSubmit.Click

    Dim childId As Integer

    For childId = 1 To CInt(iChild.Value)

        Response.Write(DirectCast(tableAssigneeChildren.FindControl("tChildName" & childId), TextBox).Text & "<br />")

    Next

End Sub

助けてくれてありがとう。J.

4

1 に答える 1

1

動的に作成されたコントロールは、ポストバックごとに失われます。次の理由から、マークアップにテーブルを追加することをお勧めします。

  1. ユーザーコントロールが表示されないという問題が発生することがよくあります。

  2. ユーザーコントロールはマークアップに存在しないため、ユーザーコントロールイベントは発生しません。代わりに動的に生成されます。

  3. 速度(ページサイズ)に違いはありません。必要に応じて、そこの可視性を切り替えることができます。

  4. はるかにクリーンでエレガントなソリューション。

とにかく、テーブルを動的に追加する必要がある場合は、この質問の動的制御とポストバック、およびこのチュートリアルhttp://www.4guysfromrolla.com/articles/092904-1.aspxを参照してください。

于 2012-06-28T16:53:47.257 に答える