Hello...
Please help me. Can't filter by Kode. but filter by nama is work.
Imports
Telerik.WinControls.UI
Imports
Telerik.WinControls.Data
Imports
Telerik.WinControls
Public
Class
RadForm2
#Region "WindowsGenerateForm"
Inherits
Telerik.WinControls.UI.RadForm
'Form overrides dispose to clean up the component list.
<System.Diagnostics.DebuggerNonUserCode()> _
Protected
Overrides
Sub
Dispose(
ByVal
disposing
As
Boolean
)
Try
If
disposing
AndAlso
components IsNot
Nothing
Then
components.Dispose()
End
If
Finally
MyBase
.Dispose(disposing)
End
Try
End
Sub
'Required by the Windows Form Designer
Private
components
As
System.ComponentModel.IContainer
'NOTE: The following procedure is required by the Windows Form Designer
'It can be modified using the Windows Form Designer.
'Do not modify it using the code editor.
<System.Diagnostics.DebuggerStepThrough()> _
Private
Sub
InitializeComponent()
Me
.RadGridView1 =
New
Telerik.WinControls.UI.RadGridView()
Me
.RadLabel1 =
New
Telerik.WinControls.UI.RadLabel()
CType
(
Me
.RadGridView1, System.ComponentModel.ISupportInitialize).BeginInit()
CType
(
Me
.RadGridView1.MasterTemplate, System.ComponentModel.ISupportInitialize).BeginInit()
CType
(
Me
.RadLabel1, System.ComponentModel.ISupportInitialize).BeginInit()
CType
(
Me
, System.ComponentModel.ISupportInitialize).BeginInit()
Me
.SuspendLayout()
'
'RadGridView1
'
Me
.RadGridView1.BackColor = System.Drawing.Color.FromArgb(
CType
(
CType
(191,
Byte
),
Integer
),
CType
(
CType
(219,
Byte
),
Integer
),
CType
(
CType
(255,
Byte
),
Integer
))
Me
.RadGridView1.Cursor = System.Windows.Forms.Cursors.
Default
Me
.RadGridView1.EnableHotTracking =
False
Me
.RadGridView1.Font =
New
System.Drawing.Font(
"Segoe UI"
, 8.25!)
Me
.RadGridView1.ForeColor = System.Drawing.Color.Black
Me
.RadGridView1.ImeMode = System.Windows.Forms.ImeMode.NoControl
Me
.RadGridView1.Location =
New
System.Drawing.Point(17, 32)
'
'RadGridView1
'
Me
.RadGridView1.MasterTemplate.AllowAddNewRow =
False
Me
.RadGridView1.MasterTemplate.EnableGrouping =
False
Me
.RadGridView1.MasterTemplate.EnableSorting =
False
Me
.RadGridView1.Name =
"RadGridView1"
Me
.RadGridView1.RightToLeft = System.Windows.Forms.RightToLeft.No
Me
.RadGridView1.ShowGroupPanel =
False
Me
.RadGridView1.Size =
New
System.Drawing.Size(629, 236)
Me
.RadGridView1.TabIndex = 0
Me
.RadGridView1.Text =
"RadGridView1"
'
'RadLabel1
'
Me
.RadLabel1.Location =
New
System.Drawing.Point(110, 8)
Me
.RadLabel1.Name =
"RadLabel1"
Me
.RadLabel1.Size =
New
System.Drawing.Size(58, 18)
Me
.RadLabel1.TabIndex = 1
Me
.RadLabel1.Text =
"RadLabel1"
'
'RadForm2
'
Me
.AutoScaleDimensions =
New
System.Drawing.SizeF(6.0!, 13.0!)
Me
.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me
.ClientSize =
New
System.Drawing.Size(669, 292)
Me
.Controls.Add(
Me
.RadLabel1)
Me
.Controls.Add(
Me
.RadGridView1)
Me
.Name =
"RadForm2"
'
'
'
Me
.RootElement.ApplyShapeToControl =
True
Me
.Text =
"RadForm2"
CType
(
Me
.RadGridView1.MasterTemplate, System.ComponentModel.ISupportInitialize).EndInit()
CType
(
Me
.RadGridView1, System.ComponentModel.ISupportInitialize).EndInit()
CType
(
Me
.RadLabel1, System.ComponentModel.ISupportInitialize).EndInit()
CType
(
Me
, System.ComponentModel.ISupportInitialize).EndInit()
Me
.ResumeLayout(
False
)
Me
.PerformLayout()
End
Sub
Friend
WithEvents
RadGridView1
As
Telerik.WinControls.UI.RadGridView
Friend
WithEvents
RadLabel1
As
Telerik.WinControls.UI.RadLabel
#End Region
Sub
New
()
InitializeComponent()
End
Sub
Private
KontakList
As
List(Of clsModel)
Private
tbSubscribed
As
Boolean
=
False
Private
Sub
RadForm2_Load1(sender
As
Object
, e
As
EventArgs)
Handles
Me
.Load
KontakList = GetAllKontak()
With
RadGridView1
.Columns.Add(
"Nama"
)
.Columns.Add(
"Alamat"
)
.MultiSelect =
True
.AllowRowResize =
False
.AutoSizeColumnsMode = GridViewAutoSizeColumnsMode.Fill
End
With
Dim
Kode
As
New
GridViewMultiComboBoxColumn()
With
Kode
.Name =
"Kode"
.HeaderText =
"Kode"
.DisplayMember =
"kode"
.ValueMember =
"kode"
'.DataSource = KontakList
End
With
RadGridView1.Columns.Insert(0, Kode)
RadGridView1.Rows.AddNew()
End
Sub
Private
Sub
RadGridView1_CellEditorInitialized(sender
As
Object
, e
As
GridViewCellEventArgs)
Handles
RadGridView1.CellEditorInitialized
Dim
multiComboElement
As
RadMultiColumnComboBoxElement = TryCast(RadGridView1.ActiveEditor, RadMultiColumnComboBoxElement)
If
multiComboElement IsNot
Nothing
Then
With
multiComboElement
.DataSource = KontakList
.DropDownStyle = RadDropDownStyle.DropDown
.EditorControl.MasterTemplate.BestFitColumns()
.AutoSizeDropDownToBestFit =
True
.DisplayMember =
"kode"
.ValueMember =
"kode"
.Text =
""
Dim
fkode
As
FilterDescriptor =
New
FilterDescriptor(
"Kode"
, FilterOperator.StartsWith,
String
.Empty)
' FilterOperator.Contains, "")
fkode.IsFilterEditor =
False
.EditorControl.FilterDescriptors.Add(fkode)
Dim
fnama
As
FilterDescriptor =
New
FilterDescriptor(
"Nama"
, FilterOperator.StartsWith,
String
.Empty)
' FilterOperator.Contains, "")
fnama.IsFilterEditor =
False
.EditorControl.FilterDescriptors.Add(fnama)
.EditorControl.FilterDescriptors.LogicalOperator = FilterLogicalOperator.[
Or
]
.AutoCompleteMode = AutoCompleteMode.SuggestAppend
.AutoFilter =
True
'.EditorControl.GridBehavior = New MyMultiColumnComboGridBehavior()
If
.EditorControl.FilterDescriptors.Count = 0
Then
.EditorControl.FilterDescriptors.Add(.DisplayMember, FilterOperator.StartsWith, [
String
].Empty)
End
If
AddHandler
.TextBoxElement.TextBoxItem.HostedControl.KeyDown,
AddressOf
TextBox_KeyDown
'AddHandler .EditorControl.SelectionChanged, AddressOf cKontak_SelectedIndexChanged
End
With
End
If
Dim
tbEditor
As
RadTextBoxEditor = TryCast(RadGridView1.ActiveEditor, RadTextBoxEditor)
If
Not
tbEditor
Is
Nothing
Then
If
(
Not
tbSubscribed)
Then
tbSubscribed =
True
Dim
tbElement
As
RadTextBoxEditorElement =
CType
(tbEditor.EditorElement, RadTextBoxEditorElement)
AddHandler
tbElement.KeyDown,
AddressOf
CellEditor_KeyDown
End
If
End
If
End
Sub
Private
Sub
TextBox_KeyDown(
ByVal
sender
As
Object
,
ByVal
e
As
KeyEventArgs)
Select
Case
RadGridView1.Columns(RadGridView1.CurrentColumn.Index).Name
Case
"Kode"
If
e.KeyCode = Keys.Enter
Then
Dim
element
As
RadMultiColumnComboBoxElement = TryCast(RadGridView1.ActiveEditor, RadMultiColumnComboBoxElement)
If
element.EditorControl.CurrentRow IsNot
Nothing
AndAlso
element.EditorControl.CurrentRow.DataBoundItem IsNot
Nothing
Then
Dim
kontak
As
clsModel = TryCast(element.EditorControl.CurrentRow.DataBoundItem, clsModel)
If
kontak
Is
Nothing
Then
Return
End
If
Dim
index
As
Integer
=
Me
.KontakList.IndexOf(kontak)
element.SelectedIndex = index
RadGridView1.CurrentRow.Cells(
"Kode"
).Value = kontak.Kode
RadGridView1.CurrentRow.Cells(
"Nama"
).Value = kontak.Nama
RadGridView1.CurrentRow.Cells(
"Alamat"
).Value = kontak.Alamat
element.Invalidate(
True
)
End
If
Dim
currentCell = RadGridView1.Rows(RadGridView1.Rows.Count - 1).Cells(2)
currentCell.IsSelected =
True
currentCell.BeginEdit()
End
If
If
e.KeyCode = Keys.Down
Then
Dim
element
As
RadMultiColumnComboBoxElement = TryCast(RadGridView1.ActiveEditor, RadMultiColumnComboBoxElement)
element.ShowPopup()
End
If
End
Select
End
Sub
Private
Sub
CellEditor_KeyDown(
ByVal
sender
As
Object
,
ByVal
e
As
KeyEventArgs)
If
e.KeyCode = Keys.Enter
Then
Select
Case
RadGridView1.Columns(RadGridView1.CurrentColumn.Index).Name
Case
"Alamat"
Dim
rowInfo
As
New
GridViewDataRowInfo(RadGridView1.MasterView)
Dim
editor
As
RadTextBoxEditorElement = TryCast(sender, RadTextBoxEditorElement)
rowInfo.Cells(
"Kode"
).Value =
""
rowInfo.Cells(
"Nama"
).Value =
""
rowInfo.Cells(
"Alamat"
).Value =
""
RadGridView1.Rows.Add(rowInfo)
Dim
currentCell = RadGridView1.Rows(RadGridView1.Rows.Count - 1).Cells(0)
currentCell.IsSelected =
True
currentCell.BeginEdit()
End
Select
End
If
End
Sub
'Private Sub cKontak_SelectedIndexChanged(sender As Object, e As EventArgs)
' Dim multiComboElement As RadMultiColumnComboBoxElement = TryCast(RadGridView1.ActiveEditor, RadMultiColumnComboBoxElement)
' Dim text As String
' text = multiComboElement.EditorControl.Rows(multiComboElement.SelectedIndex).Cells("Nama").Value
' RadLabel1.Text = text
'End Sub
Public
Shared
Function
GetAllKontak()
As
IList(Of clsModel)
Dim
daftarKontak =
New
List(Of clsModel)()
daftarKontak.Add(
New
clsModel()
With
{.Kode =
"110001"
, .Nama =
"AGUNG"
, .Alamat =
"Jl. Bandung"
})
daftarKontak.Add(
New
clsModel()
With
{.Kode =
"110002"
, .Nama =
"BUDI"
, .Alamat =
"Jl. Jakarta"
})
daftarKontak.Add(
New
clsModel()
With
{.Kode =
"110003"
, .Nama =
"ADI AGUNG"
, .Alamat =
"Jl. Bumi Mondoroko"
})
daftarKontak.Add(
New
clsModel()
With
{.Kode =
"110004"
, .Nama =
"AHMAD BAJURI"
, .Alamat =
"Jl. Gajayana"
})
daftarKontak.Add(
New
clsModel()
With
{.Kode =
"110005"
, .Nama =
"SAHARA IRA"
, .Alamat =
"Jl. Sumbersari"
})
daftarKontak.Add(
New
clsModel()
With
{.Kode =
"110006"
, .Nama =
"JULIUS"
, .Alamat =
"Jl. Puncak Joyo"
})
daftarKontak.Add(
New
clsModel()
With
{.Kode =
"110007"
, .Nama =
"IKAWATI"
, .Alamat =
"Jl. Pahlawan"
})
daftarKontak.Add(
New
clsModel()
With
{.Kode =
"110008"
, .Nama =
"RONI STIAWAN"
, .Alamat =
"Jl. Selorejo"
})
daftarKontak.Add(
New
clsModel()
With
{.Kode =
"110009"
, .Nama =
"JAKA SEMBUNG"
, .Alamat =
"Jl. Sarangan"
})
daftarKontak.Add(
New
clsModel()
With
{.Kode =
"110010"
, .Nama =
"BRAHMA KUMBARA"
, .Alamat =
"Jl. Bendungan Sutami"
})
daftarKontak.Add(
New
clsModel()
With
{.Kode =
"110011"
, .Nama =
"JAKA SENA"
, .Alamat =
"Jl. Veteran"
})
daftarKontak.Add(
New
clsModel()
With
{.Kode =
"110012"
, .Nama =
"PRAMA ANGGANA"
, .Alamat =
"Jl. Surabaya"
})
daftarKontak.Add(
New
clsModel()
With
{.Kode =
"110013"
, .Nama =
"WIRO SABLENG"
, .Alamat =
"Jl. Kayu Tangan"
})
Return
daftarKontak
End
Function
End
Class
Imports
System.ComponentModel
Public
Class
clsModel
Private
_kode
As
String
Private
_nama
As
String
Private
_alamat
As
String
Public
Event
PropertyChanged
As
PropertyChangedEventHandler
Public
Property
Kode()
As
String
Get
Return
Me
._kode
End
Get
Set
(value
As
String
)
If
Me
._kode <> value
Then
Me
._kode = value
OnPropertyChanged(
"Kode"
)
End
If
End
Set
End
Property
Public
Property
Nama()
As
String
Get
Return
Me
._nama
End
Get
Set
(value
As
String
)
If
Me
._nama <> value
Then
Me
._nama = value
OnPropertyChanged(
"Nama"
)
End
If
End
Set
End
Property
Public
Property
Alamat()
As
String
Get
Return
Me
._alamat
End
Get
Set
(value
As
String
)
If
Me
._alamat <> value
Then
Me
._alamat = value
OnPropertyChanged(
"Alamat"
)
End
If
End
Set
End
Property
Protected
Overridable
Sub
OnPropertyChanged(propertyName
As
String
)
RaiseEvent
PropertyChanged(
Me
,
New
PropertyChangedEventArgs(propertyName))
End
Sub
End
Class