I've implemented Google-like filtering in my RadGrid FilterTemplate column similar to how its described here. It works great except when you make a selection the value doesn't stay present in the RadComboBox. Is there a way to accomplish this? I tried using sender.set_text() but it doesn't seem to work.
<telerik:GridBoundColumn DataField=
"last_name"
DataType=
"System.String"
HeaderText=
"Last Name"
SortExpression=
"last_name"
UniqueName=
"last_name"
ShowFilterIcon=
"True"
AutoPostBackOnFilter=
"true"
CurrentFilterFunction=
"Contains"
>
<FilterTemplate>
<telerik:RadComboBox runat=
"server"
ID=
"rcblast"
DataTextField=
"last_name"
DataValueField=
"last_name"
EnableEmbeddedSkins=
"False"
Skin=
"2015"
Width=
"100px"
EnableLoadOnDemand=
"True"
MarkFirstMatch=
"True"
ShowToggleImage=
"False"
OnClientDropDownOpening=
"lastName_ClientDropDownOpening"
OnClientSelectedIndexChanged=
"lastName_ClientSelectedIndexChanged"
OnClientItemsRequesting=
"lastName_ItemsRequested"
OnItemsRequested=
"rcblast_ItemsRequested"
>
</telerik:RadComboBox>
<telerik:RadScriptBlock ID=
"RadScriptBlock2"
runat=
"server"
>
<script type=
"text/javascript"
>
function lastName_ClientSelectedIndexChanged(sender, args) {
$find(
"<%= rgTraining.ClientID %>"
).get_masterTableView().filter(
"last_name"
, args.get_item().get_text(),
"StartsWith"
);
// doesn't seem to work
sender.set_text(args.get_item().get_text());
}
function lastName_ItemsRequested(sender, args) {
if
(args.get_text().length < 3)
args.set_cancel(
true
);
else
args.set_cancel(
false
);
}
function lastName_ClientDropDownOpening(sender, args) {
var comboText = sender.get_text();
if
(comboText.length < 3) {
args.set_cancel(
true
);
}
}
</script>
</telerik:RadScriptBlock>
</FilterTemplate>
<ItemStyle VerticalAlign=
"Top"
/>
<HeaderStyle HorizontalAlign=
"Left"
VerticalAlign=
"Bottom"
Font-Bold=
"True"
Font-Underline=
"True"
/>
</telerik:GridBoundColumn>