2010-02-09 28 views

回答

3

起初我以爲你想要一個網絡中繼器,但從你的意見,我意識到你的意思是Microsoft.VisualBasic.PowerPacks.DataRepeater。

我需要一些更多的信息給你最有用的示例代碼(見下文)。

使用的DataRepeater的基本步驟是:
1)安裝Visual Basic電源包3 Link
2)打開VB.net WinForms項目和的DataRepeater拖動到窗體
3)添加新的數據集通過添加 - 項目>新建項目菜單
4)在設計窗口,開設專欄根據需要
5)隨着你的形式從數據 - > ShowDataSources菜單
6)打開數據源窗口設計模式,轉到數據源窗口中的數據集並使用d在表名旁邊的下拉框中選擇「詳細信息」
7)將表拖到DataRepeater控件的頂部部分(在表單上)。表格字段現在應該列在DataRepeater上。你可以移動它們。
8)在運行時,您可以加載數據集,DataRepeater將自動反映數據更改。不需要.Databind
前。

me.DataSet1.Tables(0).Columns.Add(New String() {"John", "Doe", "Accountant"} 

myDataAdapter.Fill(me.DataSet1.Tables(0)) 

你得到絆倒在任何的那些步驟?


編輯:

從我所看到的,它看起來像的DataRepeater意味着在情況下使用了您添加/映射到數據表在設計時DataRepeater中。然後,您只需在運行時填寫數據表,DataReader會自動顯示數據。

如果您真的想在運行時將表格/控件添加到DataRepeater,以下是我爲您編寫的一個示例。它假定一個名爲Form3與命名DataRepeater1的DataRepeater和一個名爲Button1的按鈕形式...

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的典型方式信息的鏈接: Link

最後編輯

用戶的最後一個錯誤是區分大小寫的問題。下面的代碼行中的字符串「文本」必須大寫以匹配控件的屬性名稱。我建議爲「測試」創建一個常量以避免這種錯字。

[ControlName].DataBindings.Add(New System.Windows.Forms.Binding("Text", [DataTable], [Column Name], True)) 
+0

尋找一個代碼示例。並在vb.net。我不知道關於aspx。我知道它會是什麼樣子,因爲我可以在設計器中做到這一點,但我想在代碼中做到這一點。 – Linda 2010-02-09 05:57:07

+0

只是爲了澄清,這是一個Winforms(桌面)或Web應用程序?你是否需要編寫代碼來將數據加載到DataRepeater中,或者您是否正在尋找在運行時創建DataRepeater並將其插入到表單中的代碼? – bluecoder 2010-02-09 07:46:38

+0

Winform。 需要代碼將數據連接到中繼器。 – Linda 2010-02-09 15:28:23

1
Dim data As DataSet 
DataRepeater1.DataSource = data 
DataRepeater1.DataBind() 
+0

當我輸入DataRepeater1.DataBind()它說: DataBind不是Microsoft.VisualBasic.PowerPacks的成員。DataRepeater – Linda 2010-02-09 15:27:35

+0

我會使用其他數據控件而不是DataRepeater,在控件選項卡 – Adir 2010-02-09 18:14:10

+0

的數據選項卡上查看我不知道爲什麼。但對我而言,我確實知道我想使用Datarepeater。 – Linda 2010-02-09 18:34:30

相關問題