Hello guys,
I have 2 problems:
1. I'm try to use gridViewComboBox, but i got this problem:
- how can I put my item(s) collection without connect throught the database??
2. I try to making a validation for each cells using the cellvalidating events, the problem is, why if I create a new row, the validation doesn't work???
here my codes:
I have 2 problems:
1. I'm try to use gridViewComboBox, but i got this problem:
- how can I put my item(s) collection without connect throught the database??
2. I try to making a validation for each cells using the cellvalidating events, the problem is, why if I create a new row, the validation doesn't work???
here my codes:
Private Sub TabelBuku_CellValidating(ByVal sender As System.Object, ByVal e As Telerik.WinControls.UI.CellValidatingEventArgs) Handles TabelBuku.CellValidating
Dim kolom = TryCast(e.Column, GridViewDataColumn)
If ((TypeOf e.Row Is GridViewDataRowInfo) AndAlso (kolom IsNot Nothing) AndAlso (kolom.FieldName = "IdBuku")) Then
Dim baris = DirectCast(e.Row, GridViewDataRowInfo)
Dim nilai = DirectCast(e.Value, String)
If (String.IsNullOrEmpty(nilai)) Then
e.Cancel = True
lblKesalahan.BackColor = Color.LightYellow
lblKesalahan.ForeColor = Color.Red
lblKesalahan.Text = "ID Buku Harus Diisi!!"
baris.ErrorText = "ID Buku Harus Diisi!!"
Else
baris.ErrorText = String.Empty
lblKesalahan.BackColor = Color.Transparent
lblKesalahan.ForeColor = Color.LimeGreen
lblKesalahan.Text = "EDITOR DATA BUKU"
End If
End If
End Sub
9 Answers, 1 is accepted
0
Emanuel Varga
Top achievements
Rank 1
answered on 11 Oct 2010, 06:45 AM
Hello Mampus,
1. If by that question you mean how to set the data source for the GridViewComboBox column, i would suggest Creating the column on DataBindingComplete and set the DataSource for the column there, and the necessary relations, like this:
And for the CellValidation, it was not working because of this check here: (TypeOf e.Row Is GridViewDataRowInfo), because when you are creating a new row, the type of the row is GridViewNewRowInfo, but in order to avoid checking for all the necessary types you the simplest way to do this is to change it to:
Hope this helps, if you have any other questions or comments, please let me know,
Best Regards,
Emanuel Varga
1. If by that question you mean how to set the data source for the GridViewComboBox column, i would suggest Creating the column on DataBindingComplete and set the DataSource for the column there, and the necessary relations, like this:
Private Sub RadGridView1_DataBindingComplete(ByVal sender As System.Object, ByVal e As Telerik.WinControls.UI.GridViewBindingCompleteEventArgs) Handles RadGridView1.DataBindingComplete Dim grid = DirectCast(sender, RadGridView) Dim comboBoxColumn As New GridViewComboBoxColumn("ComboColumn") comboBoxColumn.DataSource = New Object() {"aaa", "bbb", "ccc"} comboBoxColumn.FieldName = "Id" comboBoxColumn.ValueMember = "Id" grid.Columns.Add(comboBoxColumn)End SubAnd for the CellValidation, it was not working because of this check here: (TypeOf e.Row Is GridViewDataRowInfo), because when you are creating a new row, the type of the row is GridViewNewRowInfo, but in order to avoid checking for all the necessary types you the simplest way to do this is to change it to:
Private Sub RadGridView1_CellValidating(ByVal sender As System.Object, ByVal e As Telerik.WinControls.UI.CellValidatingEventArgs) Handles RadGridView1.CellValidating Dim kolom = TryCast(e.Column, GridViewDataColumn) If ((kolom IsNot Nothing) AndAlso (kolom.FieldName = "Name")) Then Dim nilai = DirectCast(e.Value, String) If (String.IsNullOrEmpty(nilai)) Then e.Cancel = True lblKesalahan.BackColor = Color.LightYellow lblKesalahan.ForeColor = Color.Red lblKesalahan.Text = "ID Buku Harus Diisi!!" e.Row.ErrorText = "ID Buku Harus Diisi!!" Else e.Row.ErrorText = String.Empty lblKesalahan.BackColor = Color.Transparent lblKesalahan.ForeColor = Color.LimeGreen lblKesalahan.Text = "EDITOR DATA BUKU" End If End If End SubHope this helps, if you have any other questions or comments, please let me know,
Best Regards,
Emanuel Varga
0
mampus
Top achievements
Rank 1
answered on 11 Oct 2010, 02:34 PM
thanks for the answers, it's really helpfull...
i'm doing this way:
i'm doing this way:
Dim kolom = TryCast(e.Column, GridViewDataColumn) Dim namaKolom As String If ((TypeOf e.Row Is GridViewDataRowInfo Or (TypeOf e.Row Is GridViewNewRowInfo)) AndAlso (kolom IsNot Nothing) AndAlso (kolom.FieldName = namaKolom)) Then Dim nilai = DirectCast(e.Value, String) If (String.IsNullOrEmpty(nilai)) Then
e.cancel = True
e.Row.ErrorText = "Tahun Terbit Harus Diisi!!"
With lblKesalahan
.BackColor = Color.LightYellow
.ForeColor = Color.Red
.Text = "Tahun Terbit Harus Diisi!!"
End With
Else
e.Row.ErrorText = String.Empty
With lblKesalahan
.BackColor = Color.Transparent
.ForeColor = Color.LimeGreen
.Text = "Editor Data Buku"
End With
End If
End If
0
Emanuel Varga
Top achievements
Rank 1
answered on 11 Oct 2010, 02:47 PM
Hello Mampus,
Glad to be able to help, if you have any more questions please just let me know, and if the question has been solved, please mark the question as answered, so that others can find the answers to their questions faster.
If you have any other questions or comments, please let me know,
Best Regards,
Emanuel Varga
Glad to be able to help, if you have any more questions please just let me know, and if the question has been solved, please mark the question as answered, so that others can find the answers to their questions faster.
If you have any other questions or comments, please let me know,
Best Regards,
Emanuel Varga
0
mampus
Top achievements
Rank 1
answered on 16 Oct 2010, 05:36 PM
hello there..
I still don't understand, how add items to the gridviewComboBox...??
I still don't understand, how add items to the gridviewComboBox...??
0
Emanuel Varga
Top achievements
Rank 1
answered on 16 Oct 2010, 05:56 PM
Hello Mampus,
Just set the DataSource for the GridViewComboBoxColumn when you are creating the column, or do you need something else?
Best Regards,
Emanuel Varga
Just set the DataSource for the GridViewComboBoxColumn when you are creating the column, or do you need something else?
Best Regards,
Emanuel Varga
0
mampus
Top achievements
Rank 1
answered on 17 Oct 2010, 02:52 AM
Hi...
yeah, i want to add some items to the gridviewcombobox...
example: i have colums name "Genre"....I want to add some items, like "Pop", "Rock","Jazz"...
how i do that..??
I already tried like above, but it didn't Work...
yeah, i want to add some items to the gridviewcombobox...
example: i have colums name "Genre"....I want to add some items, like "Pop", "Rock","Jazz"...
how i do that..??
I already tried like above, but it didn't Work...
0
Accepted
Emanuel Varga
Top achievements
Rank 1
answered on 17 Oct 2010, 08:32 AM
Hello again,
Please take a look at the following example:
Please let me know if you need something different, of if you have any other questions or comments, please let me know,
Best Regards,
Emanuel Varga
Please take a look at the following example:
Imports SystemImports System.ComponentModelImports System.Windows.FormsImports Telerik.WinControls.UIPartial Public Class Form1 Inherits Form Private WithEvents RadGridView1 As RadGridView Public Sub New() InitializeComponent() Me.Controls.Add(InlineAssignHelper(RadGridView1, New RadGridView())) RadGridView1.Dock = DockStyle.Fill End Sub Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.RadGridView1.AutoSizeColumnsMode = GridViewAutoSizeColumnsMode.Fill Me.RadGridView1.DataSource = New ProductsCollection(1000) End Sub Private Sub radGridView1_DataBindingComplete(ByVal sender As Object, ByVal e As GridViewBindingCompleteEventArgs) Handles RadGridView1.DataBindingComplete 'set the original columns visibility to false RadGridView1.Columns("BuyerId").IsVisible = False 'create the new comboboxcolumn Dim column = New GridViewComboBoxColumn("SomeComboboxColumn", "SomeComboboxColumn") 'set the data source for the combobox column column.DataSource = New BuyersCollection(10, 10) column.ValueMember = "Id" column.FieldName = "BuyerId" column.DisplayMember = "Name" Me.RadGridView1.Columns.Add(column) Me.RadGridView1.BestFitColumns() End Sub Private Shared Function InlineAssignHelper(Of T)(ByRef target As T, ByVal value As T) As T target = value Return value End FunctionEnd Class#Region "Helpers"Public Class Product Public Property Id() As Integer Get Return m_Id End Get Set(ByVal value As Integer) m_Id = Value End Set End Property Private m_Id As Integer Public Property BuyerId() As Integer Get Return m_BuyerId End Get Set(ByVal value As Integer) m_BuyerId = Value End Set End Property Private m_BuyerId As Integer Public Sub New(ByVal id As Integer, ByVal buyerId As Integer) Me.Id = id Me.BuyerId = buyerId End SubEnd ClassPublic Class Buyer Public Property Id() As Integer Get Return m_Id End Get Set(ByVal value As Integer) m_Id = Value End Set End Property Private m_Id As Integer Public Property Name() As String Get Return m_Name End Get Set(ByVal value As String) m_Name = Value End Set End Property Private m_Name As String Public Sub New(ByVal id As Integer, ByVal name As String) Me.Id = id Me.Name = name End SubEnd ClassPublic Class ProductsCollection Inherits BindingList(Of Product) Public Sub New(ByVal noItems As Integer) For i As Integer = 0 To noItems - 1 Me.Add(New Product(i, i + 10)) Next End SubEnd ClassPublic Class BuyersCollection Inherits BindingList(Of Buyer) Public Sub New(ByVal startIndex As Integer, ByVal lenght As Integer) For i As Integer = 0 To 9 Me.Add(New Buyer(i + 10, "Buyer" + (i + 1).ToString())) Next End SubEnd Class#End RegionPlease let me know if you need something different, of if you have any other questions or comments, please let me know,
Best Regards,
Emanuel Varga
0
mampus
Top achievements
Rank 1
answered on 18 Oct 2010, 02:38 AM
hello there..
umm...i don't understand what's the region helper's doing..???
umm...i don't understand what's the region helper's doing..???
0
Emanuel Varga
Top achievements
Rank 1
answered on 18 Oct 2010, 06:56 AM
Hello again mampus, just creating the data source for the grid.
Best Regards,
Emanuel Varga
Best Regards,
Emanuel Varga