I currently am trying to perform a rebind of the Grid through AJAX whenever a node on a RadTreeView control is clicked. The new data is successfully rebound, but for some reason the ability after rebinding I loose the ability to select items inside the grid.
<
telerik:RadAjaxManager
ID
=
"RadAjaxManager1"
runat
=
"server"
>
<
ClientEvents
/>
<
AjaxSettings
>
<
telerik:AjaxSetting
AjaxControlID
=
"rtFiles"
EventName
=
"OnNodeClick"
>
<
UpdatedControls
>
<
telerik:AjaxUpdatedControl
ControlID
=
"grdFiles"
LoadingPanelID
=
"RadAjaxLoadingPanel1"
/>
</
UpdatedControls
>
</
telerik:AjaxSetting
>
</
AjaxSettings
>
</
telerik:RadAjaxManager
>
<
telerik:RadSplitter
ID
=
"Splitter"
Width
=
"100%"
runat
=
"server"
>
<
telerik:RadPane
ID
=
"Pane1"
runat
=
"server"
>
<
telerik:RadAjaxLoadingPanel
ID
=
"RadAjaxLoadingPanel1"
runat
=
"server"
>
</
telerik:RadAjaxLoadingPanel
>
<
telerik:RadTreeView
ID
=
"rtFiles"
runat
=
"server"
EnableAjaxSkinRendering
=
"true"
AllowNodeEditing
=
"false"
OnClientContextMenuItemClicking
=
"rtFiles_onClientContextMenuItemClicking"
oncontextmenuitemclick
=
"rtFiles_ContextMenuItemClick"
onnodeedit
=
"rtFiles_NodeEdit"
OnNodeClick
=
"rtFiles_NodeClick"
>
<
ContextMenus
>
<
telerik:RadTreeViewContextMenu
ID
=
"fileContextMenu"
>
<
Items
>
<
telerik:RadMenuItem
Text
=
"Rename"
Value
=
"rename"
PostBack
=
"false"
></
telerik:RadMenuItem
>
<
telerik:RadMenuItem
Text
=
"Delete"
Value
=
"delete"
></
telerik:RadMenuItem
>
</
Items
>
</
telerik:RadTreeViewContextMenu
>
<
telerik:RadTreeViewContextMenu
ID
=
"albumContextMenu"
>
<
Items
>
<
telerik:RadMenuItem
Text
=
"New Album"
Value
=
"newAlbum"
></
telerik:RadMenuItem
>
<
telerik:RadMenuItem
Text
=
"Upload File"
Value
=
"uploadFile"
></
telerik:RadMenuItem
>
<
telerik:RadMenuItem
Text
=
"Rename"
Value
=
"rename"
PostBack
=
"false"
></
telerik:RadMenuItem
>
<
telerik:RadMenuItem
Text
=
"Delete"
Value
=
"delete"
></
telerik:RadMenuItem
>
</
Items
>
</
telerik:RadTreeViewContextMenu
>
</
ContextMenus
>
</
telerik:RadTreeView
>
</
telerik:RadPane
>
<
telerik:RadSplitBar
ID
=
"Split1"
CollapseMode
=
"Backward"
runat
=
"server"
/>
<
telerik:RadPane
ID
=
"Pane2"
runat
=
"server"
>
<
telerik:RadGrid
ID
=
"grdFiles"
Width
=
"100%"
runat
=
"server"
AllowMultiRowSelection
=
"true"
onneeddatasource
=
"grdFiles_NeedDataSource"
OnItemDataBound
=
"grdFiles_ItemDataBound"
>
<
SelectedItemStyle
BackColor
=
"Red"
/>
<
MasterTableView
ShowHeader
=
"true"
UseAllDataFields
=
"false"
AutoGenerateColumns
=
"false"
RetrieveAllDataFields
=
"false"
>
<
Columns
>
<
telerik:GridTemplateColumn
HeaderText
=
"File Name"
>
<
HeaderStyle
Width
=
"20px"
/>
<
ItemTemplate
>
<
img
src
=
"/internetsite/Images/Icons/<%# Convert.ToBoolean(Convert.ToString(DataBinder.Eval(Container.DataItem, "
Title")).Contains("."))? Convert.ToString(DataBinder.Eval(Container.DataItem, "Title")).Substring(Convert.ToString(DataBinder.Eval(Container.DataItem, "Title")).LastIndexOf(".") + 1) + ".gif" : "folder.gif" %>" /> <%# DataBinder.Eval(Container.DataItem, "Title") %>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
</
Columns
>
</
MasterTableView
>
<
ClientSettings
EnableRowHoverStyle
=
"true"
>
<
Selecting
AllowRowSelect
=
"true"
/>
</
ClientSettings
>
</
telerik:RadGrid
>
</
telerik:RadPane
>
</
telerik:RadSplitter
>
protected
void
grdFiles_NeedDataSource(
object
source, GridNeedDataSourceEventArgs e)
{
string
strValue;
if
(rtFiles.SelectedNode ==
null
)
{
strValue = rtFiles.Nodes[0].Value;
}
else
{
strValue = rtFiles.SelectedNode.Value;
}
reloadDataSource_grdFiles(
int
.Parse(strValue.Substring(strValue.IndexOf(
"_"
) + 1)));
}
protected
void
reloadDataSource_grdFiles(
int
intId)
{
grdFiles.MasterTableView.DataKeyNames =
new
string
[] {
"Id"
,
"Title"
};
grdFiles.DataSource = myDataSource(intID);
}