私は内部に簡単なリピータを持つUserControlを持っています。これは、コントロールに渡されると標準のデータバインディングを使用してリピーターにデータを取り込むdataというプロパティを持ちます。同じascxコントロールのLoadControlをプレースホルダで複数回使用
ページにはプレースホルダがあります。
私は結果が毎回異なっている次
Dim qDetail As New UserControls_ReportDataTable
qDetail = DirectCast(LoadControl("~/UserControls/ReportDataTable.ascx"), UserControls_ReportDataTable)
qDetail.data = result
phBCPSACustomQuestions.Controls.Add(qDetail)
を行うループを持っています。
問題は、私のページが見えるループの最後に、コントロールのすべてのインスタンスが結果データの最後のセットで設定されていることです。
これはなぜ起こっているのですか?
--update - コメントに基づいて
ただ、いくつかの詳細。
制御におけるプロパティ「データ」は、以下のように定義される:
特性データをIEnumerableを
ように、私は結果が各ループ反復で異なることを確認しました。
これは、私は確かに言うことはできませんが、私はあなたのループの外で「結果」を定義していることを推測したいすべてのコードを見ずにループ自体
For Each tblRow As DataRowView In dSet.Tables(0).DefaultView
Dim result As DataView = dSet.Tables(1).DefaultView
result.RowFilter = "QID = " & tblRow("QID").ToString
Dim qDetail As UserControls_ReportDataTable
qDetail = DirectCast(LoadControl("~/UserControls/ReportDataTable.ascx"), UserControls_ReportDataTable)
qDetail.data = result
phBCPSACustomQuestions.Controls.Add(qDetail)
Next
ヒント:最初の行の 'New'は不要です。また、 "data"のプロパティ定義をポストします。 –
完全なループを表示する必要があります。そうでなければ、推測する必要があります。 –