我在tabpage2中有一个datagridview,并且我有一个搜索按钮tabpage1以填充datagridview。当我搜索并单击显示空行的tabpage2 datagridview时,我回到tabpage1并再次单击搜索,然后转到显示数据的tabpage2 datagridview,为什么会这样?
Dim daPA As New OracleDataAdapter
Dim dtPA As New DataTable()
Dim cmd As New OracleCommand("select * from POLICY_SUBAGENT_DETAIL where POLICY_REFER =:Vno", sgcnn)
cmd.Parameters.Add("@Vno", OracleDbType.NVarchar2).Value = TxtPolicyRefer.Text.ToString.Trim
dtPA.Clear()
daPA = New OracleDataAdapter(cmd)
daPA.Fill(dtPA)
DgvSubAgent.AutoGenerateColumns = False
DgvSubAgent.DataSource = dtPA
If dtPA.Rows.Count > 0 Then
For i As Integer = 0 To dtPA.Rows.Count - 1
DgvSubAgent.Rows(i).Cells(0).Value = dtPA.Rows(i).Item("SUBAGENT_NAME").ToString.Trim
'DgvSubAgent.Rows(i).Cells(1).Value = dtPA.Rows(i).Item("BUSINESS_SHARE").ToString.Trim
'DgvSubAgent.Rows(i).Cells(2).Value = dtPA.Rows(i).Item("COMM_P").ToString.Trim
DgvSubAgent.Rows(i).Cells(1).Value = dtPA.Rows(i).Item("COMM_VALUE").ToString
Next
End If
答案 0 :(得分:0)
实现TabControl
的目的是要在选择TabPage
之前不会在每个TabPage
上创建控件。如果在填充该网格之前选择包含该网格的选项卡,则应该会发现它可以正常工作。您可以在代码中做到这一点,只需在现有内容上方添加一行即可。如果您不想选择该选项卡,那么我可以想象有一种方法可以强制在该TabPage
上创建控件。我必须进行测试才能确定,但是我希望在CreateControl
上调用TabPage
可以解决问题。
答案 1 :(得分:0)
我使用了一个技巧,在填充datagridview之前添加一行TabControl1.SelectedIndex = 1
喜欢:
TabControl1.SelectedIndex = 1 ' where datagridview control placed,
DgvSubAgent.DataSource = dtPA
然后在end sub
之前,添加一行TabControl1.SelectedIndex = 0
---搜索按钮