■37736 / inTopicNo.8) |
Re[7]: DataRepeaterにComboBoxを配置 |
□投稿者/ ゆい (7回)-(2009/06/29(Mon) 16:45:01)
|
> であれば、↓で自分が書いたのと同じ原因な気がします。 > http://bbs.wankuma.com/index.cgi?mode=al2&namber=35451&KLOG=61 を見ると、
> それぞれの ComboBox の DataSource プロパティに同じデータソースのインスタンスを適用するとそうなった記憶が。 > うろ覚えだけど。 という事でしたので、
下のページを参考に、インスタンスを別に適用するようにしてみました。 http://www.vbforums.com/showthread.php?t=535556
その結果、Comboboxは個別に選択できるようになったんですが、 SelectedValueがきいてないといいますか、なんといえばよいのでしょうか?
DBのデータ(キー)と一致しているリスト項目が、デフォルトで選択されないです。 ※Comboboxでデフォルト選択されているリスト項目がバラバラです。
どうにかなりませんでしょうか? よろしくお願いします。
以下にソースを記します。
SelectedValueは↓の設定になっています。
ComboBox.SelectedValue = order_msiBindingSource - kokyaku_id
↓ソース Private Sub DataRepeater1_ItemCloned(ByVal sender As Object, ByVal e As Microsoft.VisualBasic.PowerPacks.DataRepeaterItemEventArgs) Handles DataRepeater1.ItemCloned
Try
Dim Cmb As ComboBox = e.DataRepeaterItem.Controls("M_supplier_idComboBox")
’↓以下の部分は、実際にはDBからデータを取得します。
Dim VDP_Array As New ArrayList VDP_Array.Add(New ComboListData("A店", 1)) VDP_Array.Add(New ComboListData("B店", 2)) VDP_Array.Add(New ComboListData("C店", 3)) VDP_Array.Add(New ComboListData("D店", 4)) VDP_Array.Add(New ComboListData("E店", 5))
Cmb.DisplayMember = "DisplayMember" Cmb.ValueMember = "ValueMember" Cmb.DataSource = VDP_Array
'Cmb.SelectedValue = 3
Catch ex As Exception
End Try
End Sub
Private Class ComboListData
Private sName As String Private iID As Integer
Public Sub New() sName = "" iID = 0 End Sub
Public Sub New(ByVal Name As String, ByVal ID As Integer) sName = Name iID = ID End Sub
Public Property DisplayMember() As String Get Return sName End Get
Set(ByVal sValue As String) sName = sValue End Set End Property
Public Property ValueMember() As Integer Get Return iID End Get
Set(ByVal iValue As Integer) iID = iValue End Set End Property
Public Overrides Function ToString() As String Return sName End Function
End Class
|
|