devexpress gridcontrol刷新数据源

时间:2013-01-09 21:05:44

标签: .net devexpress datasource gridcontrol

使用此代码我填充devexpress gridcontrol,一切正常:

Private Sub tbccegek_SelectedPageChanged(ByVal sender As Object, ByVal e As DevExpress.XtraTab.TabPageChangedEventArgs) Handles tbccegek.SelectedPageChanged
    If tbccegek.SelectedTabPageIndex = 3 Then

        'gcCegek.DataSource = Nothing
        ConnectToDb(fbconn, "public")
        fbcommand.Connection = fbconn
        fbcommand.CommandText = "select cegazon, rovidnev, irsz||' '||varos||' '||utca||' '||hazszam as cim, adoszam, konyvpnem, osszktg_forg from cegek order by cegazon"
        fbadapter.SelectCommand = fbcommand

        fbadapter.Fill(fbdataset)
        fbdataset.Tables(0).TableName = "cegek"
        gcCegek.DataMember = "cegek"
        gcCegek.DataSource = fbdataset

        For i = 0 To fbdataset.Tables(0).Rows.Count - 1
            If fbdataset.Tables(0).Rows(i).Item(5) = "1" Then
                fbdataset.Tables(0).Rows(i).Item(5) = "Összköltség"
            ElseIf fbdataset.Tables(0).Rows(i).Item(5) = "0" Then
                fbdataset.Tables(0).Rows(i).Item(5) = "Forgalmi ktg."
            End If
        Next

        gcCegek.MainView.PopulateColumns()

        columnview = gcCegek.MainView
        columnview.Columns(0).Caption = "Cégazonosító"
        columnview.Columns(1).Caption = "Cégnév (rövid)"
        columnview.Columns(2).Caption = "Cím"
        columnview.Columns(3).Caption = "Adószám"
        columnview.Columns(4).Caption = "K.pnem"
        columnview.Columns(5).Caption = "Ktg.elsz"
        GridView1.BestFitColumns()

        fbconn.Close()
    End If
End Sub

但是,如果我在应用程序中修改一条记录,然后通过更新sql将其保存到数据库并再次单击选项卡,我看到gridwetrol上的值,gridcontrol中的值没有改变。但是在数据库中,存在修改后的值。

如您所见,在标签页更改事件中,我从一开始就填充网格,在我看来也应该有修改后的值。

你可以帮帮我吗?

1 个答案:

答案 0 :(得分:0)

此问题的解决方案是再次将数据从DB重新获取到网格所连接的DataSource。在这种情况下,网格将知道数据已更改并刷新其内容。

另外,我建议您在发布的事件处理程序中设置断点,并确保从数据库中提取实际修改的数据。

此外,使用以下代码更为正确:

if not e.Page Is Nothing andalso e.Page.SelectedTabPageIndex = 3 Then
...