Article information
Article relates to
RadMultiColumnComboBox
Created by
Georgi Georgiev
Last modified
07/11/2013
Last modified by
public
VirtualMultiColumnComboBoxElement()
:
base
()
{
this
.EditorControl.LoadElementTree();
}
Public
Sub
New
MyBase
.
Me
.EditorControl.LoadElementTree()
End
.virtualRadMultiColumnComboBox1.LoadDataSourceAsync =
true
;
.virtualRadMultiColumnComboBox1.ValueMember =
"DummysDummy.Name"
.virtualRadMultiColumnComboBox1.DisplayMember =
"DummysDummy"
.virtualRadMultiColumnComboBox1.DataSource =
.ds;
.virtualRadMultiColumnComboBox1.AutoFilter =
.virtualRadMultiColumnComboBox1.AutoShowHidePopup =
.virtualRadMultiColumnComboBox1.SearchType = TrieImplementation.SearchType.Contains;
.virtualRadMultiColumnComboBox1.EditorControl.AutoSizeColumnsMode = Telerik.WinControls.UI.GridViewAutoSizeColumnsMode.Fill;
.virtualRadMultiColumnComboBox1.SearchCompleted += radMultiColumnComboBox1_SearchCompleted;
.virtualRadMultiColumnComboBox1.SearchStarting += radMultiColumnComboBox1_SearchStarting;
.virtualRadMultiColumnComboBox1.EditorControlCellValueNeeded += virtualRadMultiColumnComboBox1_EditorControlCellValueNeeded;
.virtualRadMultiColumnComboBox1.DataSourceLoaded += virtualRadMultiColumnComboBox1_DataSourceLoaded;
True
.ds
.virtualRadMultiColumnComboBox1.SearchType = SearchType.Contains
.virtualRadMultiColumnComboBox1.EditorControl.AutoSizeColumnsMode = Telerik.WinControls.UI.GridViewAutoSizeColumnsMode.Fill
AddHandler
.virtualRadMultiColumnComboBox1.SearchCompleted, AddressOfradMultiColumnComboBox1_SearchCompleted
.virtualRadMultiColumnComboBox1.SearchStarting, AddressOfradMultiColumnComboBox1_SearchStarting
.virtualRadMultiColumnComboBox1.EditorControlCellValueNeeded, AddressOfvirtualRadMultiColumnComboBox1_EditorControlCellValueNeeded
.virtualRadMultiColumnComboBox1.DataSourceLoaded, AddressOfvirtualRadMultiColumnComboBox1_DataSourceLoaded
.virtualRadMultiColumnComboBox1.PerformSearch(
"test"
, SearchType(optional));
, SearchType([optional]))
protected
virtual
void
PerformSearchCore(
string
text, SearchType searchType)
if
(!
.OnSearchStarting(text))
return
.searching)
Thread searchThread =
.CreateSearchThread(searchType, text);
searchThread.IsBackground =
searchThread.Start();
else
.enqueuedSearchType = searchType;
.enqueuedSearchText = text;
private
Thread CreateSearchThread(SearchType searchType,
text)
new
Thread(() =>
(
Thread.Sleep(
.startSearchInterval);
.enqueuedSearchText !=
null
)
.PerformNewSearchFromQueue();
.searching =
ICollection<
> results =
.trie.Search(
.Text, searchType);
(!(
.virtualDataSource
is
List<
object
>))
.virtualDataSource =
>();
> dataSource =
as
>;
dataSource.Clear();
foreach
result
in
results)
.actualDataSource.ContainsKey(result))
item
.actualDataSource[result])
dataSource.Add(item);
searching =
false
.EditorControl.Invoke(
InvokeDelegate(() =>
.EditorControl.RowCount != results.Count)
.EditorControl.RowCount = results.Count;
.SetCurrentState(PopupEditorState.Ready);
.OnSearchCompleted(text, results);
}));
});
searchThread;
Private
Function
CreateSearchThread(searchType
As
SearchType, text
String
Thread
Dim
searchThread
Thread(
If
.searching
Then
.enqueuedSearchType = searchType
.enqueuedSearchText = text
Return
.StartSearchInterval)
.enqueuedSearchText IsNot
Nothing
.PerformNewSearchFromQueue()
results
ICollection(Of
) =
.Text, searchType)
Not
TypeOf
Is
List(Of
Object
))
)()
dataSource
) = TryCast(
.virtualDataSource, List(Of
dataSource.Clear()
For
Each
In
.ActualDataSource.ContainsKey(result)
.ActualDataSource(result)
dataSource.Add(item)
Next
False
.EditorControl.Invoke(NewInvokeDelegate(
.EditorControl.RowCount <> results.Count
.EditorControl.RowCount = results.Count
.SetCurrentState(PopupEditorState.Ready)
.OnSearchCompleted(text, results)
SearchType
LoadDataSourceAsync
StartSearchInterval
AutoShowHidePopup IgnoreCase
PerformSearch(String text)
PerformSearch(String text, SearchType searchType)
SearchCompleted
SearchStarting
EditorControlCellValueNeeded
DataSourceLoaded
Resources Buy Try