AUTHOR: Peter Milchev
DATE POSTED: January 23, 2019
Achieve SelectedIndexChanged server-side event with RadMultiColumnComboBox.
In the OnChange event of the multicolumn combobox, we set the arguments for a hidden button and programmatically click it. Then, the OnClick server-side event handler of the button is used as a server-side event handler for the change of the multicolumn combobox.
<
asp:Label
id
=
"Label1"
runat
"server"
/>
telerik:RadMultiColumnComboBox
ID
"RadMultiColumnComboBox1"
Skin
"Default"
DropDownWidth
"400"
Width
"220px"
DataTextField
"Name"
DataValueField
"Id"
>
ClientEvents
OnChange
"OnChange"
ColumnsCollection
telerik:MultiColumnComboBoxColumn
Field
Title
"Title"
</
div
style
"display: none"
telerik:RadButton
"RadButton1"
Text
"Postback"
CommandName
"SelectedIndexChanged"
AutoPostBack
"true"
OnClick
"RadButton1_Click"
function
OnChange(sender, args) {
var
selectedDataItem = sender.kendoWidget.dataItems()[sender.get_selected()];
button = $find(
"<%= RadButton1.ClientID %>"
);
if
(sender.get_selected() > -1) {
// make the selectedDataItem JS objec to a string and add it as a commandArgument
button.set_commandArgument(JSON.stringify(selectedDataItem));
}
else
{
button.set_commandArgument(
""
setTimeout(
() {
button.click();
});
public
class
MyClass
int
Id {
get
;
set
; }
String Name {
String Title {
protected
void
Page_Load(
object
sender, EventArgs e)
var items = Enumerable.Range(0, 10).Select(x =>
new
MyClass()
Id = x,
Name =
"Name "
+ x,
Title =
"Title "
+ x
RadMultiColumnComboBox1.DataSource = items;
RadMultiColumnComboBox1.DataBind();
RadButton1_Click(
var button = sender
as
RadButton;
var multiColumnComboBox = RadMultiColumnComboBox1;
(button.CommandName ==
)
var dataItemString = button.CommandArgument;
// Deserialize the stringified JS object from the commandArguments
(!
string
.IsNullOrWhiteSpace(dataItemString))
MyClass dataItem =
System.Web.Script.Serialization.JavaScriptSerializer().Deserialize<MyClass>(dataItemString);
Label1.Text =
.Format(
"Selected item: Id - {0}; Name - {1}; Title - {2};"
, dataItem.Id, dataItem.Name, dataItem.Title);
"No item selected"
Resources Buy Try