I use the JavaScript window method as in the post above by Shinu.
I add windows for the items I need to the Grid during ItemCreated
protected
void
gridQuestions_ItemCreated(
object
sender, GridItemEventArgs e)
{
if
(e.Item
is
GridEditFormItem && e.Item.IsInEditMode)
{
GridEditFormItem item = (GridEditFormItem)e.Item;
RadTextBox text = (RadTextBox)item.FindControl(
"txtOptionGrid"
);
RadListBox list = (RadListBox)item.FindControl(
"lbOptionsGrid"
);
gridQuestions.Controls.Add(
new
LiteralControl(
"<script type='text/javascript'>window['text'] = '"
+ text.ClientID +
"';</script>"
));
gridQuestions.Controls.Add(
new
LiteralControl(
"<script type='text/javascript'>window['list'] = '"
+ list.ClientID +
"';</script>"
));
}
}
I have a RadTextBox, a LinkButton and RadListBox
<
telerik:RadTextBox
ID
=
"txtOptionGrid"
runat
=
"server"
Width
=
"500"
MaxLength
=
"256"
Skin
=
"Metrolike"
EnableEmbeddedSkins
=
"false"
EmptyMessage
=
"Add multiple choice option"
/>
<
asp:LinkButton
ID
=
"btnAddOptionGrid"
runat
=
"server"
Text
=
"Add"
OnClientClick='<%# string.Format("AddMultipleOptionGrid(); return false;") %>'/>
<
telerik:RadListBox
ID
=
"lbOptionsGrid"
runat
=
"server"
Height
=
"175"
Width
=
"530"
Skin
=
"Metrolike"
EnableEmbeddedSkins
=
"false"
AllowReorder
=
"true"
AllowDelete
=
"true"
DataSourceID
=
"OptionsDataSource"
DataTextField
=
"Text"
DataValueField
=
"ID"
PersistClientChanges
=
"true"
>
<
ButtonSettings
ShowDelete
=
"true"
ShowReorder
=
"true"
/>
</
telerik:RadListBox
>
When I want to add an item from the TextBox to the ListBox using the LinkButton OnClientClick event, AddMultipleOptionGrid() gets called.
<script type=
"text/javascript"
>
function
AddMultipleOptionGrid() {
var
txtOption = $find(window[
'text'
]);
if
(!txtOption) {
alert(
"Cant find TextBox"
);
return
false
;
}
var
lbOptions = $find(window[
'list'
]);
if
(!lbOptions) {
alert(
"Cant find Listbox"
);
return
false
;
}
lbOptions.trackChanges();
var
item =
new
Telerik.Web.UI.RadListBoxItem();
item.set_text(txtOption.get_value());
lbOptions.get_items().add(item);
item.set_selected(
true
);
item.scrollIntoView();
txtOption.clear();
lbOptions.commitChanges();
txtOption.focus();
}
</script>
It works as is with NO AjaxSetting on the grid, but once I introduce the code below AddMultipleOptionGrid() alerts "Cant find TextBox" and "Cant find Listbox"
<
telerik:RadAjaxManager
ID
=
"RadAjaxManager1"
runat
=
"server"
>
<
ClientEvents
OnRequestStart
=
"ramOnRequestStart"
/>
<
ajaxsettings
>
<
telerik:AjaxSetting
AjaxControlID
=
"gridQuestions"
>
<
UpdatedControls
>
<
telerik:AjaxUpdatedControl
ControlID
=
"gridQuestions"
/>
</
UpdatedControls
>
</
telerik:AjaxSetting
>
</
ajaxsettings
>
</
telerik:RadAjaxManager
>
I need this working with Ajax.