Link to home
Start Free TrialLog in
Avatar of maxgall
maxgall

asked on

cell validating in datagridview

I am struggling to validate cells in datagridview view.
I have created a very simple vb application in vb studio 2005.
created datasourse, databinding etc. Dragged and dropped a datagridview on my form including the little toolstrip bar with
with add new row, delete and save buttons.

When I click add new row it creates a new row which is empty. If I fill in the two columns and click save it works.
If I forget to input a value it obviously gives me a vb empyt string error. Can you please show me a small example of how a validation would work. I tried the one from MSDE but could not get it to work.  Here is all the code I have in my application>

**********************************************************************
Public Class Form1

    Private Sub PupilRecordsBindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PupilRecordsBindingNavigatorSaveItem.Click
        Me.Validate()
        Me.PupilRecordsBindingSource.EndEdit()
        Me.PupilRecordsTableAdapter.Update(Me.SchoolDataSet.pupilRecords)
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'TODO: This line of code loads data into the 'SchoolDataSet.pupilRecords' table. You can move, or remove it, as needed.
        Me.PupilRecordsTableAdapter.Fill(Me.SchoolDataSet.pupilRecords)

    End Sub

    Private Sub BindingNavigatorDeleteItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BindingNavigatorDeleteItem.Click

    End Sub

    Private Sub PupilRecordsDataGridView_CellEndEdit(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles PupilRecordsDataGridView.CellEndEdit
        PupilRecordsDataGridView.Rows(e.RowIndex).ErrorText = String.Empty
    End Sub

    Private Sub PupilRecordsDataGridView_CellValidating(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellValidatingEventArgs) Handles PupilRecordsDataGridView.CellValidating
        If PupilRecordsDataGridView.Columns(e.ColumnIndex).Name = "Name" Then

            If String.IsNullOrEmpty(e.FormattedValue.ToString()) Then
                PupilRecordsDataGridView.Rows(e.RowIndex).ErrorText = "Empty"
                e.Cancel = True
            End If
        End If

    End Sub

End Class
************************************************************
I might have the code in the wrong place because nothing happens with that.

thanks

Max
ASKER CERTIFIED SOLUTION
Avatar of vb_jonas
vb_jonas
Flag of Sweden image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of maxgall
maxgall

ASKER

Yes, silly mistake I made there  thanks vm
Avatar of maxgall

ASKER

Thanks vm I can now validate the cells but the problem I have is when you add entry button a new row is created with a new ID Number generated. When clicking the add new entry button again a new row is created and the previous row not validated and when clicking on the save button a generic error about empty fields is created. Any Idea how I can prevent a new row beeing created when the previous one is still empty?

Interesting, shouldn't be so difficult, but I cannot think of something at the moment, and Im quite busy, so I would suggest you to add a new question, so someone else can have a look?
Avatar of maxgall

ASKER

Ok Thanks