or
For example,
Node1
- SubNode1
- SubNode1.1
- SubNode2
- SubNode3
If I add new node for SubNode1, named SubNode1.1, the focus should be in SubNode1 and it should be expanded to see the new node added.
Any help is greatly appreciated.
Thanx in advance
ASD
| <rad:RadAjaxManager ID="AjaxManager" runat="server"> |
| <AjaxSettings> |
| <rad:AjaxSetting AjaxControlID="grdCustomerAssignments"> |
| <UpdatedControls> |
| <rad:AjaxUpdatedControl ControlID="grdCustomerAssignments" /> |
| </UpdatedControls> |
| </rad:AjaxSetting> |
| <rad:AjaxSetting AjaxControlID="grdCustomerAssignments"> |
| <UpdatedControls> |
| <rad:AjaxUpdatedControl ControlID="pnlDetails" /> |
| </UpdatedControls> |
| </rad:AjaxSetting> |
| </AjaxSettings> |
| </rad:RadAjaxManager> |
| <rad:RadGrid ID="grdCustomerAssignments" runat="server" Skin="WebBlue" AutoGenerateColumns="false" AllowMultiRowSelection="false" OnNeedDataSource="grdCustomerAssignments_NeedDataSource" OnSelectedIndexChanged="grdCustomerAssignments_SelectedIndexChanged"> |
| <ClientSettings EnablePostBackOnRowClick="true" > |
| <ClientEvents/> |
| <Scrolling AllowScroll="true" ScrollHeight="350" UseStaticHeaders="true" SaveScrollPosition="true" /> |
| <Selecting AllowRowSelect="true" /> |
| <Resizing AllowColumnResize="true" /> |
| </ClientSettings> |
| <MasterTableView DataKeyNames="ID" > |
| <HeaderStyle Wrap="false" HorizontalAlign="Center" VerticalAlign="Middle" Font-Bold="true" /> |
| <ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" Wrap="false" /> |
| <AlternatingItemStyle HorizontalAlign="Center" VerticalAlign="Middle" Wrap="false" /> |
| <NoRecordsTemplate> |
| <div style="font-size:80%; color:Maroon;">No Items Were Found</div> |
| </NoRecordsTemplate> |
| </MasterTableView> |
| </rad:RadGrid> |
| <asp:Panel ID="pnlDetails" runat="server"> |
| <rad:RadTabStrip ID="tabStrip" runat="server" Align="Justify" AppendDataBoundItems="false" SelectedIndex="0" MultiPageID="multiPage" Skin="WebBlue"> |
| <Tabs></Tabs> |
| </rad:RadTabStrip> |
| <rad:RadMultiPage ID="multiPage" runat="server"></rad:RadMultiPage> |
| </asp:Panel> |
protected void Page_Init(object sender, EventArgs e) |
| { |
| GetAssignments(); |
| if (!IsPostBack) |
| AddColumnsToGrid(); |
| } |
| protected void Page_Load(object sender, EventArgs e) |
| { |
| tabStrip.Tabs.Clear(); |
| multiPage.Controls.Clear(); |
| } |
| protected void Page_UnLoad(object sender, EventArgs e) |
| { |
| grdCustomerAssignments.MasterTableView.ClearSelectedItems(); |
| } |
| protected void grdCustomerAssignments_NeedDataSource(object source, Telerik.Web.UI.GridNeedDataSourceEventArgs e) |
| { |
| grdCustomerAssignments.DataSource = Assignments; |
| } |
| protected void grdCustomerAssignments_SelectedIndexChanged(object sender, EventArgs e) |
| { |
| try |
| { |
| string id = ((RadGrid)sender).SelectedValue.ToString(); |
| DataRow dataRow = null; |
| foreach (DataRow row in Assignments.Rows) |
| { |
| if (row["ID"].ToString() == id) |
| dataRow = row; |
| } |
| PopulateAssignmentDetail(dataRow); |
| } |
| catch (Exception ex) |
| { |
| } |
| } |
| protected void PopulateAssignmentDetail(DataRow dataRow) |
| { |
| // just some code to add details to each tab. |
| } |
| protected void AddColumnsToGrid() |
| { |
| grdCustomerAssignments.MasterTableView.Columns.Clear(); |
| for (int i = 1; i < 7; i++) |
| { |
| DataColumn column = Assignments.Columns[i]; |
| if (column.DataType == typeof(Int32)) |
| { |
| GridNumericColumn numericColumn = new GridNumericColumn(); |
| numericColumn.HeaderText = column.ColumnName; |
| numericColumn.DataField = column.ColumnName; |
| grdCustomerAssignments.MasterTableView.Columns.Add(numericColumn); |
| } |
| else if (column.DataType == typeof(DateTime)) |
| { |
| GridDateTimeColumn dateColumn = new GridDateTimeColumn(); |
| dateColumn.HeaderText = column.Caption; |
| dateColumn.DataField = column.ColumnName; |
| dateColumn.DataFormatString = @"{0:MMM dd yyyy}"; |
| grdCustomerAssignments.MasterTableView.Columns.Add(dateColumn); |
| } |
| else |
| { |
| GridBoundColumn boundColumn = new GridBoundColumn(); |
| boundColumn.HeaderText = column.Caption; |
| boundColumn.DataField = column.ColumnName; |
| grdCustomerAssignments.MasterTableView.Columns.Add(boundColumn); |
| } |
| } |
| } |
| private void GetAssignments() |
| { |
| if (Assignments == null) |
| Assignments = new DataTable(); |
| if (TabTitles == null) |
| TabTitles = new Dictionary<string, IList<int>>(); |
| try |
| { |
| Assignments.Columns.Add(new DataColumn("ID")); |
| for (int i = 0; i < 50; i++) |
| { |
| Assignments.Columns.Add(new DataColumn("Column" + i.ToString())); |
| } |
| int columnIndex = 0; |
| int tabIndex = 0; |
| foreach (DataColumn column in Assignments.Columns) |
| { |
| if (columnIndex > 5) |
| { |
| string fieldCategory = "tab" + tabIndex.ToString(); |
| if (tabIndex == 4) |
| tabIndex = 0; |
| else |
| tabIndex++; |
| if (!TabTitles.ContainsKey(fieldCategory)) |
| { |
| IList<int> tmp = new List<int>(); |
| tmp.Add(columnIndex); |
| TabTitles.Add(fieldCategory, tmp); |
| } |
| else |
| TabTitles[fieldCategory].Add(columnIndex); |
| } |
| columnIndex++; |
| } |
| for (int j = 0; j < 50; j++) |
| { |
| DataRow row = Assignments.NewRow(); |
| foreach (DataColumn column in Assignments.Columns) |
| { |
| row[column.ColumnName] = column.ColumnName + "Row" + j.ToString(); |
| } |
| Assignments.Rows.Add(row); |
| } |
| Assignments.AcceptChanges(); |
| } |
| catch (Exception ex) |
| { |
| } |
| } |
| using System; |
| using System.Collections.Generic; |
| using System.Linq; |
| using System.Web; |
| using System.Web.Services; |
| using Telerik.Web.UI; |
| using System.Collections; |
| using System.Runtime.Serialization; |
| using System.Runtime.Serialization.Formatters.Soap; |
| namespace testCombo |
| { |
| /// <summary> |
| /// Summary description for TestWebService |
| /// </summary> |
| [WebService(Namespace = "http://tempuri.org/")] |
| [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] |
| [System.ComponentModel.ToolboxItem(false)] |
| // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. |
| //[System.Web.Script.Services.ScriptService] |
| public class TestWebService : System.Web.Services.WebService |
| { |
| [WebMethod] |
| public IEnumerable GetItems(RadComboBoxContext context) |
| { |
| int numberOfItems = 1000; |
| List<ComboBoxItemData> items = new List<ComboBoxItemData>(); |
| for (int i = 0; i < numberOfItems; i++) |
| { |
| ComboBoxItemData itemData = new ComboBoxItemData(); |
| itemData.Text = "Item " + i; |
| items.Add(itemData); |
| } |
| return items; |
| } |
| class ComboBoxItemData |
| { |
| private string text; |
| public string Text |
| { |
| get { return text; } |
| set { text = value; } |
| } |
| } |
| } |
| } |
| <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="testCombo._Default" %> |
| <%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %> |
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
| <html xmlns="http://www.w3.org/1999/xhtml" > |
| <head runat="server"> |
| <title></title> |
| </head> |
| <body> |
| <form id="form1" runat="server"> |
| <div> |
| <telerik:RadScriptManager ID="RadScriptManager1" runat="server"> |
| </telerik:RadScriptManager> |
| <telerik:RadComboBox ID="RadComboBox1" runat="server" |
| EnableLoadOnDemand="true"> |
| <ExpandAnimation Type="none" /> |
| <CollapseAnimation Type="none" /> |
| <WebServiceSettings Path="TestWebService.asmx" Method="GetItems" /> |
| </telerik:RadComboBox> |
| </div> |
| </form> |
| </body> |
| </html> |
| protected void RadGrid1_ExcelExportCellFormatting(object source, ExcelExportCellFormattingEventArgs e) |
| { |
| GridDataItem item = e.Cell.Parent as GridDataItem; |
| item.Style["background-color"] = "#ffffff"; |
| item.Style["font-size"] = "11px"; |
| item.Style["font-family"] = "Verdana"; |
| } |

| protected void tabTreeView_OnDataBound(object sender, EventArgs e) |
| { |
| RadTreeViewContextMenu contextMenu = new RadTreeViewContextMenu(); |
| contextMenu.DataFieldID = "MenuItemId"; |
| contextMenu.DataFieldParentID = "ParentId"; |
| contextMenu.DataTextField = "DisplayText"; |
| contextMenu.DataValueField = "DisplayText"; |
| contextMenu.DataSource = this.GetUnusedMenuItems(); |
| contextMenu.DataBind(); |
| tabTreeView.ContextMenus.Add(contextMenu); |
| } |
