The EntitySpaces Community

Share and learn about the EntitySpaces Architecture.
Welcome to The EntitySpaces Community Sign in | Join | Help
in
Home Forums Photos

Combo not keeping track

Last post 02-26-2007, 5:10 AM by liffey. 0 replies.
Sort Posts: Previous Next
  •  02-26-2007, 5:10 AM 564

    Combo not keeping track

    This is a problem I discovered but may not be caused by ES. However I post it here just in case! 

    Problem: Combo not keeping track with grid

    Sample data: Northwind Orders and Employees using a binding source.

    Grid: Orders
    Combo: Employees

    If I use standard MS controls with a DataSet it works as expected

    Code:
    Private Sub MS_LoadDataSetData() 
    
    ' Use standars VS 2005 controls Only 
    
    
    Dim cnString As String = "Integrated Security=SSPI;Initial Catalog=Northwind;Data Source=xxxxxx" 
    
    Dim sqlOrders As String = "SELECT OrderDate, ShipName, EmployeeID FROM Orders" 
    Dim sqlEmployees As String = "SELECT FirstName, LastName, EmployeeID FROM Employees" 
    
    Dim ds As New DataSet("Northwind") 
    Dim daOrders As New SqlDataAdapter(sqlOrders, cnString) 
    Dim daEmployees As New SqlDataAdapter(sqlEmployees, cnString) 
    
    daOrders.Fill(ds, "Orders") 
    daEmployees.Fill(ds, "Employees") 
    
    bsOrders.DataSource = ds.Tables("Orders") 
    bsEmployees.DataSource = ds.Tables("Employees") 
    
    
    With Me.DataGridView1 
        .DataSource = bsOrders 
    End With 
    
    With Me.ComboBox2 
        .DataSource = bsEmployees 
        .DisplayMember = "LastName" 
        .ValueMember = "EmployeeID" 
    
        .DataBindings.Clear() 
        .DataBindings.Add(New System.Windows.Forms.Binding("SelectedValue", bsOrders, "EmployeeID", True)) 
    End With 
    
    End Sub 

    If I use Component One controls with a DataSet it works as expected

    Code:
    Private Sub C1_LoadDataSetData() 
    
    ' Use C1 controls and if checkbox checked 
    ' use MS ComboBox 
    
    
    Dim cnString As String = "Integrated Security=SSPI;Initial Catalog=Northwind;Data Source=xxxxxx" 
    
    Dim sqlOrders As String = "SELECT OrderDate, ShipName, EmployeeID FROM Orders" 
    Dim sqlEmployees As String = "SELECT FirstName, LastName, EmployeeID FROM Employees" 
    
    Dim ds As New DataSet("Northwind") 
    Dim daOrders As New SqlDataAdapter(sqlOrders, cnString) 
    Dim daEmployees As New SqlDataAdapter(sqlEmployees, cnString) 
    
    daOrders.Fill(ds, "Orders") 
    daEmployees.Fill(ds, "Employees") 
    
    bsOrders.DataSource = ds.Tables("Orders") 
    With Me.C1TrueDBGrid1 
        .DataSource = bsOrders 
        .Rebind(False) 
    End With 
    
    bsEmployees.DataSource = ds.Tables("Employees") 
    With Me.C1Combo1 
        .DataSource = bsEmployees 
        .DisplayMember = "LastName" 
        .ValueMember = "EmployeeID" 
    
        .DataBindings.Clear() 
        .DataBindings.Add(New System.Windows.Forms.Binding("SelectedValue", bsOrders, "EmployeeID", True)) 
    
        .AutoCompletion = True 
        .AutoDropDown = True 
        .AutoSelect = True 
    
        .MatchEntry = C1.Win.C1List.MatchEntryEnum.Extended 
    
    End With 
    
    End Sub 

    The problem arises if my datasource is an EntitySpaces Collection. With standard MS controls it works as expected. However if I use C1 controls the C1Combo fails to keep pace with the EmployeeID in the C1TrueDBGrid. If I then add a standard MS ComboBox to the form and bind it to the employees then the C1 ComboBox keeps track .

    Code:
    With Me.C1Combo1 
        .DataSource = bsEmployees 
        .DisplayMember = "LastName" 
        .ValueMember = "EmployeeID" 
    
        .DataBindings.Clear() 
        .DataBindings.Add(New System.Windows.Forms.Binding("SelectedValue", bsOrders, "EmployeeID", True)) 
    
        .AutoCompletion = True 
        .AutoDropDown = True 
        .AutoSelect = True 
    
        .MatchEntry = C1.Win.C1List.MatchEntryEnum.Extended 
    
    End With 
    
    With Me.ComboBox1 
        .DataSource = bsEmployees 
        .DisplayMember = "LastName" 
        .ValueMember = "EmployeeID" 
    
        .DataBindings.Clear() 
        .DataBindings.Add(New System.Windows.Forms.Binding("SelectedValue", bsOrders, "EmployeeID", True)) 
    End With 

    It seems the only way I can get the C1ComboBox to keep track of the grid is to add a standard combo in "parallel" to the C1ComboBox.

View as RSS news feed in XML