datagridview和AddNew问题

时间:2020-03-06 14:43:45  来源:igfitidea点击:

我创建了一个VB 2008程序来跟踪工作请求。一切在VISTA盒上都可以完美运行,但是我在XP环境中添加新记录时遇到了程序问题。

基本上,我有2个标签:TAB 1包含一个datagridview,其中包含有限的信息和一个日历。在日历上选择日期会更改datagridview中的信息。 TAB 2在文本/组合框中保存该记录的所有可用信息。 datagridview和文本框都使用相同的绑定源,因此无论何时用户从datagridview中选择一行,它们始终保持同步。当我们选择"新建"按钮时,TAB 2出现,所有文本框为空,以便用户添加数据。如果回头看一下TAB 1,我们会看到一个空的新行添加到datagridview中(由于AllowUserToAdd设置为false,用户不能直接在datagridview中添加行)。如果让该应用程序保持VISTA上的AddNew记录状态,则将保持该新记录,直到我们选择SAVE或者CANCEL。但是,在XP上,经过1分钟的时间后,所有空白字段最终都将填充该特定日历日的现有记录。当我们回顾TAB 1时,我们将不再看到新的空行,而只会看到以前保存的现有记录。

关于如何解决的任何想法?感谢协助。

这是添加新记录的代码:

Private Sub cmdNew_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdNew.Click

    'Focus on Work tab
    TabControl1.SelectedTab = tabWork

    'Change the files from read-only
    bEditMode = True
    ChangeEditMode()

    'Clear the current information stored in the fields
    Try
        Me.BindingContext(WorkRequestBindingSource).AddNew()

    Catch ex As Exception
        System.Windows.Forms.MessageBox.Show(ex.Message)
    End Try

    'Hidden text boxes populate with current selected calendar
    'Used to populate TimeIn and DateNeed because if never clicked on, will populate as NULL on save 
    dtpDateNeed.Text = txtDate.Text
    dtpTimeIn.Text = txtTime.Text

End Sub

解决方案

如果代码完全相同,我想知道这是否是环境问题,例如像不同的国际选择或者框架版本之类的东西?

这绝对是环境问题。为了解决该问题,我需要知道我们在每台计算机上使用的浏览器以及每台计算机上的一些设置。

听起来好像XP机器在超时后正在刷新页面,因此正在刷新新记录。我以前见过这种情况,而且很臭。

我们可能需要考虑在视图状态中保存更多状态信息以捕获此类事件。