or
I've got a simple RadGridView bound to a DataTable (through a BindingSource); standard and easy way to put a gridview on a form dragging it from datasources box.
I've implemented my business rule validation in the datatable, as below:
Private
Sub
OperazioniDataTable_ColumnChanging(
ByVal
sender
As
System.
Object
,
ByVal
e
As
System.Data.DataColumnChangeEventArgs)
Handles
Me
.ColumnChanging
Debug.Print(
"ColumnChanging: column="
& e.Column.ColumnName)
If
(e.Column.ColumnName =
Me
.impovalColumn.ColumnName)
Then
If
CType
(e.ProposedValue,
Decimal
) = 0
Then
e.Row.SetColumnError(e.Column,
"Inserire un importo diverso da zero"
)
Else
e.Row.SetColumnError(e.Column,
""
)
End
If
End
If
End
Sub
Public Class ManageMemberType
Public context As New MIMSModel.MIMSEntities
Dim newMemType As MemType
Dim updMemType As MemType
Dim dmemtype As MemType
Dim rtype As String
Private Sub ManageCompanyType_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim query = (From m In context.MemTypes Select m).ToList
RadGridView1.DataSource = query
End Sub
Private Sub RadGridView1_RowsChanged(ByVal sender As Object, ByVal e As Telerik.WinControls.UI.GridViewCollectionChangedEventArgs) Handles RadGridView1.RowsChanged
If e.Action = Telerik.WinControls.Data.NotifyCollectionChangedAction.ItemChanged Then
Dim updrow As GridViewDataRowInfo = CType(e.NewItems(0), GridViewDataRowInfo)
updMemType = MemType.CreateMemType(updrow.Cells("Type").Value.ToString)
updMemType.Desc = updrow.Cells("Desc").Value.ToString
DataAccess.UpdateEntity(updMemType, "MemTypes")
End If
End Sub
Private Sub RadGridView1_UserAddedRow(ByVal sender As Object, ByVal e As Telerik.WinControls.UI.GridViewRowEventArgs) Handles RadGridView1.UserAddedRow
newMemType = MemType.CreateMemType(e.Row.Cells.Item("Type").Value.ToString)
newMemType.Desc = e.Row.Cells.Item("Desc").Value.ToString
Try
context.MemTypes.AddObject(newMemType)
context.SaveChanges()
MsgBox("record Added")
Catch ex As UpdateException
e.Row.Delete()
MsgBox(String.Format("The object could not be added. Make sure that a Member type of '{0}' does not aleady exist.", newMemType.Type))
End Try
End Sub
Private Sub RadGridView1_UserDeletingRow(ByVal sender As Object, ByVal e As Telerik.WinControls.UI.GridViewRowCancelEventArgs) Handles RadGridView1.UserDeletingRow
rtype = e.Rows(0).Cells(0).Value.ToString()
Dim rcount = (From r In context.GetCompanyInfoes Where r.CompanyType = rtype Select r).Count
If rcount > 0 Then
MsgBox("There are " + rcount.ToString + " companies assigned to this member type, You cannot delete this type")
Else
Try
dmemtype = MemType.CreateMemType(rtype)
DataAccess.DeleteEntity(dmemtype, "MemTypes")
Catch ex As Exception
MsgBox("There was a problem deleting the Member type of " + rtype + " Please notify IT")
End Try
End If
End Sub
End Class