Hello,
This code below is from one of demo code from
TreeList - Forum with External Edit Form
ExpandItemToLevel() is using 50 which seems a random number!!
is there a way to find how many the level a item has to expand??
Thanks!!
case RadTreeList.ExpandCollapseCommandName://if the command is fired for a root item by the LinkButton inside it, all child items should be expandedif ((e.Item as TreeListDataItem).HierarchyIndex.NestedLevel == 0 && e.CommandArgument.ToString() == "ExpandAll") { e.Canceled = true; if (!(e.Item as TreeListDataItem).Expanded) { ForumBoard.ExpandItemToLevel((e.Item as TreeListDataItem), 50);
// 50 is a random number as Level to exand all I assume
// is there a way to find how many level it has to expand?? } else { ForumBoard.CollapseAllItems(); } } EditFormPanel.Visible = false; break
I have an issue with radgrid of telerik control in our application. When I try to open radgrid's records to view their full detail (In Edit Mode) I am unable to tap on any rows, it's the same on iPad/iPhone in Chrome and safari browsers.
To open Radgrid's recored in Edit Mode I use the client side rowclick event of radgrid. I also use ajax on this page.
My RowSelecting event is as follows :-
function RowSelecting(sender, eventArgs) {
var grid = $find("<%= RadGrid1.ClientID %>");
if (eventArgs.get_tableView().get_name() == "RadGrid") {
if (!grid.get_masterTableView().get_dataItems()[eventArgs.get_itemIndexHierarchical()].get_isInEditMode()) {
grid.get_masterTableView().editItem(eventArgs.get_itemIndexHierarchical());
}
}
}

http://demos.telerik.com/aspnet-ajax/treeview/examples/programming/addremovedisable/defaultcs.aspx
This allows click events for adding and deleting nodes in a treeview, and for the treeview to be updated without screen flicker.
However, the demo code doesn't work for me.
For example, if I try to delete a node by clicking on the Delete Node button it doesn't even fire the DeleteButton_Click event. If I remove the reference to the DeleteButton in the RadAjaxManager, then the event fires, but I then get the screen flicker when the tree is redrawn.
The code is below:
<%@ Page Title="" Language="C#" MasterPageFile="~/Site.User.master" EnableViewState="true" AutoEventWireup="true" CodeFile="Test.aspx.cs" Inherits="Test" %><%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %><%@ Register TagPrefix="asp" Namespace="AjaxControlToolkit" Assembly="AjaxControlToolkit"%><asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" Runat="Server"></asp:Content><asp:Content ID="Content2" EnableViewState="true" ContentPlaceHolderID="MainContent" Runat="Server"><telerik:RadScriptManager runat="server" ID="RadScriptManager1" /> <telerik:RadSkinManager ID="QsfSkinManager" runat="server" ShowChooser="true" /> <telerik:RadFormDecorator ID="QsfFromDecorator" runat="server" DecoratedControls="All" EnableRoundedCorners="false" /> <telerik:RadAjaxManager runat="server" ID="RadAjaxManager1"> <AjaxSettings> <telerik:AjaxSetting AjaxControlID="DisableButton"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="RadTreeView1" LoadingPanelID="RadAjaxLoadingPanel1"> </telerik:AjaxUpdatedControl> </UpdatedControls> </telerik:AjaxSetting> <telerik:AjaxSetting AjaxControlID="EnableAllButton"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="RadTreeView1" LoadingPanelID="RadAjaxLoadingPanel1"> </telerik:AjaxUpdatedControl> </UpdatedControls> </telerik:AjaxSetting> <telerik:AjaxSetting AjaxControlID="DeleteButton"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="RadTreeView1" LoadingPanelID="RadAjaxLoadingPanel1"> </telerik:AjaxUpdatedControl> </UpdatedControls> </telerik:AjaxSetting> <telerik:AjaxSetting AjaxControlID="AddButton"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="RadTreeView1" LoadingPanelID="RadAjaxLoadingPanel1"> </telerik:AjaxUpdatedControl> </UpdatedControls> </telerik:AjaxSetting> </AjaxSettings> </telerik:RadAjaxManager> <telerik:RadAjaxLoadingPanel runat="server" ID="RadAjaxLoadingPanel1"> </telerik:RadAjaxLoadingPanel> <ul class="qsfexAvailableActions"> <li> <asp:Button ID="DisableButton" runat="server" OnClick="DisableButton_Click" ValidationGroup="DisableRequiresSelection" Text="Disable selected node"></asp:Button> <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ErrorMessage="Select a node first." ControlToValidate="RadTreeView1" Display="Dynamic" ValidationGroup="DisableRequiresSelection" CssClass="validator"></asp:RequiredFieldValidator> </li> <li> <asp:Button ID="EnableAllButton" runat="server" CausesValidation="False" OnClick="EnableAll_Button" Text="Enable all nodes"></asp:Button> </li> <li> <asp:Button ID="DeleteButton" runat="server" OnClick="DeleteButton_Click" ValidationGroup="DeleteRequiresSelection" Text="Delete selected node"></asp:Button> <asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" ErrorMessage="Select a node first." Display="Dynamic" ControlToValidate="RadTreeView1" ValidationGroup="DeleteRequiresSelection" CssClass="validator"></asp:RequiredFieldValidator> </li> <li> <telerik:RadTextBox runat="Server" ID="NodeTextBox" EmptyMessage="Enter node text"> </telerik:RadTextBox> <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="Text is required" Display="Dynamic" ControlToValidate="NodeTextBox" ValidationGroup="TextRequired" CssClass="validator"></asp:RequiredFieldValidator> </li> <li> <asp:Button ID="AddButton" runat="server" OnClick="AddButton_Click" Text="Add new node"></asp:Button> </li> </ul> <telerik:RadTreeView ID="RadTreeView1" runat="server" Height="280px" Width="300px"> </telerik:RadTreeView></asp:Content>
using System;using System.Web.UI;using System.Web.UI.WebControls;using Telerik.Web.UI;public partial class Test : System.Web.UI.Page{ private void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { RadTreeView1.LoadContentFile("tree.xml"); } } protected void DisableButton_Click(object sender, EventArgs e) { Page.Validate("DisableRequiresSelection"); if (Page.IsValid) { RadTreeView1.SelectedNode.Enabled = false; RadTreeView1.SelectedNode.Selected = false; } } protected void EnableAll_Button(object sender, EventArgs e) { foreach (RadTreeNode node in RadTreeView1.GetAllNodes()) { node.Enabled = true; } } protected void DeleteButton_Click(object sender, EventArgs e) { Page.Validate("DeleteRequiresSelection"); if (Page.IsValid) { RadTreeView1.SelectedNode.Remove(); } } protected void AddButton_Click(object sender, EventArgs e) { Page.Validate("TextRequired"); if (Page.IsValid) { IRadTreeNodeContainer target = RadTreeView1; if (RadTreeView1.SelectedNode != null) { RadTreeView1.SelectedNode.Expanded = true; target = RadTreeView1.SelectedNode; } RadTreeNode addedNode = new RadTreeNode(NodeTextBox.Text); addedNode.Selected = true; target.Nodes.Add(addedNode); } }}
In default.aspx page_load event I load uc1 into the panel:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Dim uc As UserControl = Page.LoadControl("~/uc1.ascx") pnlGrid.Controls.Add(uc)End Sub<asp:ObjectDataSource runat="server" ID="odsTest" TypeName="WebApplication2.BL" EnablePaging="true" SelectMethod="GetAllTest" SelectCountMethod="GetTestCount" MaximumRowsParameterName="maximumRows" StartRowIndexParameterName="startRowIndex"></asp:ObjectDataSource><asp:Panel ID="pnlGrid" runat="server"></asp:Panel>(There are a <asp:Literal> control auto-generated here)
But if panel markup like:
<asp:Panel ID="pnlGrid" runat="server"></asp:Panel><asp:Panel ID="pnlGrid" runat="server"/>