3

データセット/データテーブルをデータリピーターにバインドし、データ要素をデータセット/データテーブルの列にバインドする方法のvb.netの例を探していますか?ありがとう

4

2 に答える 2

3

最初は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))
于 2010-02-09T05:25:29.343 に答える
2
Dim data As DataSet
DataRepeater1.DataSource = data
DataRepeater1.DataBind()
于 2010-02-09T14:18:00.900 に答える