Hej igen, Nu har jag lyckats lösa det :)Inmatningskontroll Datagrid ?
Nu har jag problem med mina datagriddar igen :(
Det är så att jag vill ha inmatningskontroll på min DG, så att man kollar att data är av rätt typ eller format och meddelar användaren vad som är fel..
Jag hittade ett IMHO ganska snyggt sätt att lösa detta på msdn
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnadvnet/html/vbnet02252003.asp. Det är bara det att jag har lite problem att konvertera detta exempel... Jag populerar min DG från en databas på följande sätt.... i exemplet så är det ett eget objekt (om jag lyckats fatta rätt)
Min kod för att populera DG'n
<code>
With dgCirkulartyp
.DataSource = Nothing
.DataMember = String.Empty
'get the dataset from the getdataservice class
ds = DataService.GetDataSet(sSelect, sTable, sWhere, sOrder)
.CaptionText = "Cirkulär"
m_dt = New DataTable(sTable)
m_dt = ds.Tables(sTable)
m_dv = New DataView(m_dt)
DataService.SetCommandsCirkulartyp(sTable) 'assign the update,delete and insert queries
.DataSource = m_dv
m_dv.AllowDelete = True
m_dv.AllowEdit = True
m_dv.AllowNew = True
End With
</code>
Jag vet inte om ni lyckats förstå vad jag menar... ;) om ni inte gör det men har ett bra sätt att sköta inmatningskontroll i en DG så får ni gärna tipsa mig. ;)Sv: Inmatningskontroll Datagrid ?
Jag postar min lösning här ifall det är någon som skulle kunna ha nytta av den...
<code>
' Denna rad ligger i Form_Load
AddHandler m_ds.Tables("cirkulartype").ColumnChanging, AddressOf Cirkulartype_ColumnChanging
Private Sub Cirkulartype_ColumnChanging(ByVal sender As Object, ByVal e As System.Data.DataColumnChangeEventArgs)
If e.Column.ColumnName.Equals("cirkular_type_code") Then
If CType(e.ProposedValue, String).Length > 5 Then
Dim BadValue As Object = e.ProposedValue
e.Row.RowError = "Kollumnen kod kan vara max 5 tecken."
Else
e.Row.ClearErrors()
End If
End If
End Sub
</code>