使用此代码我填充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中的值没有改变。但是在数据库中,存在修改后的值。
如您所见,在标签页更改事件中,我从一开始就填充网格,在我看来也应该有修改后的值。
你可以帮帮我吗?答案 0 :(得分:0)
此问题的解决方案是再次将数据从DB重新获取到网格所连接的DataSource。在这种情况下,网格将知道数据已更改并刷新其内容。
另外,我建议您在发布的事件处理程序中设置断点,并确保从数据库中提取实际修改的数据。
此外,使用以下代码更为正确:
if not e.Page Is Nothing andalso e.Page.SelectedTabPageIndex = 3 Then
...