Hello,
I have a RadTreeView and button on the page, RadTreeView is filled programmatically when click on the button. I use NodeTemplate for nodes but after postback template is not used. Could anybody help me?
ASPX
CodeBehind
Thanks!
I have a RadTreeView and button on the page, RadTreeView is filled programmatically when click on the button. I use NodeTemplate for nodes but after postback template is not used. Could anybody help me?
ASPX
<telerik:RadScriptManager ID="ScriptManager" runat="server" EnableViewState="false"></telerik:RadScriptManager> <telerik:RadAjaxManager ID="AjaxManager" runat="server" DefaultLoadingPanelID="RadAjaxLoadingPanel1"> <AjaxSettings> <telerik:AjaxSetting AjaxControlID="rtvSearchResult" EventName="OnNodeClick"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="rtsObjInfo"></telerik:AjaxUpdatedControl> </UpdatedControls> </telerik:AjaxSetting> <telerik:AjaxSetting AjaxControlID="btnSearch"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="rtvSearchResult"></telerik:AjaxUpdatedControl> </UpdatedControls> </telerik:AjaxSetting> </AjaxSettings> <ClientEvents OnResponseEnd="OnResponseEnd" /> </telerik:RadAjaxManager><telerik:RadTreeView ID="rtvSearchResult" OnNodeClick="rtvSearchResult_NodeClick" OnClientMouseOver="onNodeOver" OnClientMouseOut="onNodeOut" runat="server" Height="100%"><asp:Button ID="btnSearch" OnClick="btnSearchClick" runat="server" /><telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server"></telerik:RadAjaxLoadingPanel>CodeBehind
public List<common.DOCUMENT_OBJECT_MAP> list; protected void Page_Load(object sender, EventArgs e) { list = new List<common.DOCUMENT_OBJECT_MAP>(); list.Add(new common.DOCUMENT_OBJECT_MAP() { ID = 1, NAME = "Obj1" }); list.Add(new common.DOCUMENT_OBJECT_MAP() { ID = 2, NAME = "Obj2" }); list.Add(new common.DOCUMENT_OBJECT_MAP() { ID = 3, NAME = "Obj3" }); }protected void btnSearchClick(object sender, EventArgs e) { rtvSearchResult.Nodes.Clear(); foreach (common.DOCUMENT_OBJECT_MAP obj in list) { RadTreeNode newNode = new RadTreeNode(); newNode.Text = obj.NAME; newNode.ToolTip = obj.NAME; newNode.Value = obj.ID.ToString(); newNode.DataItem = obj.ID_LAYER; newNode.NodeTemplate = new TreeNodeTemplate(obj); RadTreeNode parentNode = rtvSearchResult.FindNodeByValue(obj.ID_FOLDER.ToString()); if (parentNode != null) { parentNode.Nodes.Add(newNode); } else { rtvSearchResult.Nodes.Add(newNode); } } rtvSearchResult.Visible = true; }public class TreeNodeTemplate : ITemplate { private common.DOCUMENT_OBJECT_MAP _obj; public TreeNodeTemplate(common.DOCUMENT_OBJECT_MAP obj) { _obj = obj; } public void InstantiateIn(Control container) { Label control = new Label(); control.ID = "lbn_" + _obj._ID; control.ClientIDMode = ClientIDMode.Static; control.Text = _obj._NAME; container.Controls.Add(control); Label lbButtons = new Label(); lbButtons.Text = "<input type='button' value='1'/>"; lbButtons.ID = "node_" + _obj.ID + "_cmd"; lbButtons.ClientIDMode = ClientIDMode.Static; container.Controls.Add(lbButtons); } }Thanks!
