データセット/データテーブルをデータリピーターにバインドし、データ要素をデータセット/データテーブルの列にバインドする方法のvb.netの例を探していますか?ありがとう
2 に答える
最初はWebリピーターが必要だと思っていましたが、コメントから、Microsoft.VisualBasic.PowerPacks.DataRepeaterを意味していることがわかりました。
最も役立つサンプルコードを提供するために、さらに情報が必要です(以下を参照)。
DataRepeaterを使用する基本的な手順は次のとおりです
。1)Visual Basic Power Packをインストールします。3リンク
2)VB.net Winformsプロジェクトを開き、DataRepeaterをフォームにドラッグします
。3)[追加]->[新しいアイテム]を使用してプロジェクトに新しいデータセットを追加します。メニュー
4)デザインウィンドウで、必要に応じて列を設定します
5)[データ]-> [ShowDataSources]メニューから[データソース]ウィンドウを開きます
6)フォームをデザインモードにして、[データソース]ウィンドウの[データセット]に移動し、次のドロップダウンボックスを使用しますテーブル名に移動して[詳細]を選択します
。7)テーブルをDataRepeaterコントロールの上部(フォーム上)にドラッグします。これで、テーブルフィールドがDataRepeaterに一覧表示されます。あなたはそれらを動かすことができます。
8)実行時に、Datsetをロードでき、DataRepeaterはデータの変更を自動的に反映します。.Databindは必要ありません
。
me.DataSet1.Tables(0).Columns.Add(New String() {"John", "Doe", "Accountant"}
また
myDataAdapter.Fill(me.DataSet1.Tables(0))
あなたはそれらのステップのいずれかにつまずきますか?
編集:
私が見たところ、DataRepeaterは、設計時にDataRepeaterにデータテーブルを追加/マッピングした状況で使用されることを意図しているように見えます。次に、実行時にデータテーブルに入力するだけで、DataReaderにデータが自動的に表示されます。
実行時にテーブル/コントロールをDataRepeaterに本当に追加したい場合は、これが私がコーディングした例です。これは、DataRepeater1という名前のDataRepeaterとButton1という名前のボタンを持つForm3という名前のフォームを想定しています。
Public Class Form3
''Set up demo DataSet/DataTable
Const FRUIT_COL As String = "Fruit"
Const COLOR_COL As String = "Color"
MyDataSet = New DataSet
MyDataSet.Tables.Add("MyTable")
With MyDataSet.Tables(0)
.Columns.Add(FRUIT_COL, GetType(System.String))
.Columns.Add(COLOR_COL, GetType(System.String))
End With
''Populate the DataTable with sample data. You would be loading from SQL
With MyDataSet.Tables(0)
.Rows.Add(New String() {"Apple", "Red"})
.Rows.Add(New String() {"Orange", "Orange"})
.Rows.Add(New String() {"Banana", "Yellow"})
End With
''These objects would normally be created automatically if you added DataTable to DataRepeater at design-time
FruitLabel = New Label
FruitTextBox = New TextBox
ColorLabel = New Label
ColorTextBox = New TextBox
With FruitLabel
.AutoSize = True
.Location = New Point(10, 20)
.Name = "FruitLabel"
.Text = FRUIT_COL
End With
With ColorLabel
.AutoSize = True
.Location = New Point(10, 60)
.Name = "FruitLabel"
.Text = FRUIT_COL
End With
With FruitTextBox
.Location = New Point(50, 20)
.Size = New Size(60, 15)
.DataBindings.Add(New System.Windows.Forms.Binding("Text", Me.MyDataSet.Tables(0), FRUIT_COL, True))
End With
With ColorTextBox
.Size = New Size(60, 15)
.Location = New Point(50, 60)
.DataBindings.Add(New System.Windows.Forms.Binding("Text", Me.MyDataSet.Tables(0), COLOR_COL, True))
End With
''Add the controls that will be displayed for each row in DataTable
With DataRepeater1
.ItemTemplate.Controls.Add(FruitLabel)
.ItemTemplate.Controls.Add(FruitTextBox)
.ItemTemplate.Controls.Add(ColorLabel)
.ItemTemplate.Controls.Add(ColorTextBox)
End With
''Run-time population of DataRepeater from your DataTable
DataRepeater1.DataSource = MyDataSet
DataRepeater1.DataMember = MyDataSet.Tables(0).TableName
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'Example of how you can add additional rows with form elements
With MyDataSet.Tables(0)
.Rows.Add(New String() {"Grapes", "Green"})
End With
End Sub
End Class
コードを見たので、使用しないでください:)
設計時にDataSet構造を設定するか、別のコントロールを使用してデータを表示することをお勧めします。
DataRepeaterを使用する一般的な方法に関する多くの情報が含まれているリンクは次のとおりです。 リンク
最終編集
ユーザーの最後のバグは、大文字と小文字の区別の問題でした。次のコード行の文字列「Text」は、コントロールのプロパティ名と一致するように大文字にする必要があります。このタイプミスを避けるために、「テスト」の定数を作成することをお勧めします。
[ControlName].DataBindings.Add(New System.Windows.Forms.Binding("Text", [DataTable], [Column Name], True))
Dim data As DataSet
DataRepeater1.DataSource = data
DataRepeater1.DataBind()