or
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="treeviewnew.aspx.cs" Inherits="treeviewnew" %> <%@ Register TagPrefix="telerik" Namespace="Telerik.Web.UI" Assembly="Telerik.Web.UI" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head></head> <body class="BODY"> <form runat="server" id="mainForm" method="post"> <telerik:RadScriptManager ID="RadScriptManager1" runat="server"> </telerik:RadScriptManager> <script type="text/javascript"> //<!-- function onClientContextMenuShowing(sender, args) { var treeNode = args.get_node(); treeNode.set_selected(true); //enable/disable menu items setMenuItemsState(args.get_menu().get_items(), treeNode); } function onClientContextMenuItemClicking(sender, args) { var menuItem = args.get_menuItem(); var treeNode = args.get_node(); menuItem.get_menu().hide(); switch (menuItem.get_value()) { case "New": break; case "Edit": treeNode.startEdit(); break; case "Delete": var result = confirm("Are you sure you want to delete the item: " + treeNode.get_text()); args.set_cancel(!result); break; } } //this method disables the appropriate context menu items function setMenuItemsState(menuItems, treeNode) { for (var i = 0; i < menuItems.get_count(); i++) { var menuItem = menuItems.getItem(i); switch (menuItem.get_value()) { case "New": formatMenuItem(menuItem, treeNode, 'New '); break; case "Edit": formatMenuItem(menuItem, treeNode, 'Edit "{0}"'); break; case "Delete": formatMenuItem(menuItem, treeNode, 'Delete "{0}"'); break; } } } //formats the Text of the menu item function formatMenuItem(menuItem, treeNode, formatString) { var nodeValue = treeNode.get_value(); if (nodeValue && nodeValue.indexOf("_Private_") == 0) { menuItem.set_enabled(false); } else { menuItem.set_enabled(true); } var newText = String.format(formatString, extractTitleWithoutMails(treeNode)); menuItem.set_text(newText); } //checks if the text contains (digit) function hasNodeMails(treeNode) { return treeNode.get_text().match(/\([\d]+\)/ig); } //removes the brackets with the numbers,e.g. Inbox (30) function extractTitleWithoutMails(treeNode) { return treeNode.get_text().replace(/\s*\([\d]+\)\s*/ig, ""); } //--> </script> <telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server"> </telerik:RadAjaxLoadingPanel> <telerik:RadAjaxPanel ID="RadAjaxPanel1" runat="server" LoadingPanelID="RadAjaxLoadingPanel1"> <telerik:RadTreeView ID="RadTreeView1" runat="server" OnContextMenuItemClick="RadTreeView1_ContextMenuItemClick" OnClientContextMenuItemClicking="onClientContextMenuItemClicking" OnClientContextMenuShowing="onClientContextMenuShowing" OnNodeEdit="RadTreeView1_NodeEdit" DataFieldID="id" DataFieldParentID="parentid" DataSourceID="SqlDataSource1" DataTextField="description" DataValueField="value" MaxDataBindDepth="4" Skin="WebBlue" > <ContextMenus> <telerik:RadTreeViewContextMenu ID="MainContextMenu" runat="server"> <Items> <telerik:RadMenuItem Value="New" Text="New ..." > </telerik:RadMenuItem> <telerik:RadMenuItem Value="Edit" Text="Edit ..." > </telerik:RadMenuItem> <telerik:RadMenuItem Value="Delete" Text="Delete.." > </telerik:RadMenuItem> </Items> <CollapseAnimation Type="none" /> </telerik:RadTreeViewContextMenu> <telerik:RadTreeViewContextMenu ID="EmptyFolderContextMenu" runat="server"> <Items> <telerik:RadMenuItem Value="New" Text="New "> </telerik:RadMenuItem> </Items> <CollapseAnimation Type="none" /> </telerik:RadTreeViewContextMenu> </ContextMenus> </telerik:RadTreeView> </telerik:RadAjaxPanel> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ECMApp3 %>" SelectCommand="select distinct isnull(state,'')+'state' as id, null as parentid, isnull(state,'no state') as description, isnull(state,'') as value from projects union all select cast(p.id as varchar(10))+'project' as id, isnull(p.state, '')+'state' as parentid , p.description, cast(p.id as varchar(10)) from projects p union all select cast(l.id as varchar(10))+'location', cast(p.id as varchar(10))+'project', l.name ,cast( l.id as varchar(10)) from locations l inner join projects p on l.project_id=p.id union all select cast (b.id as varchar(10))+'building', cast(l.id as varchar(10))+'location', b.building_name, cast(b.id as varchar(10)) from buildings b inner join locations l on b.location_id=l.id --where l.id <2"></asp:SqlDataSource> </form> </body> </html> using System; using System.Collections; using System.ComponentModel; using System.Data; using System.Drawing; using System.Web; using System.Web.SessionState; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls; using Telerik.Web.UI; using System.Text.RegularExpressions; public partial class treeviewnew : System.Web.UI.Page { protected const string unreadPattern = @"\(\d+\)"; protected void Page_Load(object sender, EventArgs e) { SqlDataSource1.DataBind(); SqlDataSource1.Select(DataSourceSelectArguments.Empty); //RadTreeView2.DataBind(); } protected void RadTreeView1_ContextMenuItemClick(object sender, RadTreeViewContextMenuEventArgs e) { RadTreeNode clickedNode = e.Node; switch (e.MenuItem.Value) { case "New": RadTreeNode clonedNode = clickedNode.Clone(); clonedNode.Text = string.Format("Copy of {0}", clickedNode.Text); clickedNode.InsertAfter(clonedNode); //set node's value so we can find it in startNodeInEditMode clonedNode.Value = clonedNode.GetFullPath("/"); clonedNode.Selected = true; startNodeInEditMode(clonedNode.Value); break; case "Delete": clickedNode.Remove(); break; } } private void startNodeInEditMode(string nodeValue) { //find the node by its Value and edit it when page loads string js = "Sys.Application.add_load(editNode); function editNode(){ "; js += "var tree = $find(\"" + RadTreeView1.ClientID + "\");"; js += "var node = tree.findNodeByValue('" + nodeValue + "');"; js += "if (node) node.startEdit();"; js += "Sys.Application.remove_load(editNode);};"; RadScriptManager.RegisterStartupScript(Page, Page.GetType(), "nodeEdit", js, true); } protected void RadTreeView1_NodeEdit(object sender, RadTreeNodeEditEventArgs e) { e.Node.Text = e.Text; } //this method is used by Mark All as Read and Empty this folder protected void emptyFolder(RadTreeNode node, bool removeChildNodes) { node.Font.Bold = false; node.Text = Regex.Replace(node.Text, unreadPattern, ""); if (removeChildNodes) { //Empty this folder is clicked for (int i = node.Nodes.Count - 1; i >= 0; i--) { node.Nodes.RemoveAt(i); } } else { //Mark all as read is clicked foreach (RadTreeNode child in node.Nodes) { emptyFolder(child, removeChildNodes); } } } }
<telerik:RadScriptManager ID="RadScriptManager1" runat="server"> </telerik:RadScriptManager> <telerik:RadCodeBlock ID="RadCodeBlock1" runat="server"> <script type="text/javascript"> function RowDblClick(sender, eventArgs) { sender.get_masterTableView().editItem(eventArgs.get_itemIndexHierarchical()); } </script> </telerik:RadCodeBlock> <telerik:RadGrid ID="RadGrid1" runat="server" AllowFilteringByColumn="True" AllowPaging="True" AllowSorting="True" AutoGenerateColumns="False" GridLines="None" Skin="Vista" onneeddatasource="RadGrid1_NeedDataSource" ondeletecommand="RadGrid1_DeleteCommand" oninsertcommand="RadGrid1_InsertCommand" onupdatecommand="RadGrid1_UpdateCommand" onitemdatabound="RadGrid1_ItemDataBound" > <ClientSettings EnableRowHoverStyle="true" AllowKeyboardNavigation="false"> <Selecting AllowRowSelect="True" /> <Scrolling AllowScroll="True" UseStaticHeaders="True" /> <ClientEvents OnRowDblClick="RowDblClick" /> <KeyboardNavigationSettings EnableKeyboardShortcuts="true" AllowActiveRowCycle="true" /> </ClientSettings> <MasterTableView EditMode="PopUp" CommandItemDisplay="Bottom"> <Columns> <telerik:GridBoundColumn UniqueName="Id" visible="false" ReadOnly="true" DataField="Id" HeaderText="Id" > </telerik:GridBoundColumn> <telerik:GridBoundColumn UniqueName="Nombre" AutoPostBackOnFilter="True" CurrentFilterFunction="Contains" DataField="Nombre" HeaderText="Nombre" ShowFilterIcon="False"> </telerik:GridBoundColumn> <telerik:GridBoundColumn UniqueName="Precio" AutoPostBackOnFilter="True" CurrentFilterFunction="Contains" DataField="Precio" HeaderText="Precio" ShowFilterIcon="False"> </telerik:GridBoundColumn> <telerik:GridButtonColumn ConfirmText="Borrar este método?" ConfirmTitle="Borrar" ButtonType="ImageButton" CommandName="Delete" Text="Borrar" UniqueName="DeleteColumn" ConfirmDialogType="RadWindow"> <HeaderStyle Width="30px" /> <ItemStyle HorizontalAlign="Center" CssClass="MyImageButton" /> </telerik:GridButtonColumn> <telerik:GridEditCommandColumn ButtonType="ImageButton"> <HeaderStyle Width="30px" /> <ItemStyle HorizontalAlign="Center" CssClass="MyImageButton" /> </telerik:GridEditCommandColumn> </Columns> <CommandItemSettings AddNewRecordText="Añadir nuevo registro" RefreshText="Refrescar" /> <EditFormSettings EditColumn-CancelText="Cancelar" EditColumn-Display="True" EditFormType="AutoGenerated"> <FormTableItemStyle Wrap="False"></FormTableItemStyle> <FormCaptionStyle CssClass="EditFormHeader"></FormCaptionStyle> <FormMainTableStyle GridLines="None" CellSpacing="5" CellPadding="3" BackColor="White" Width="100%" /> <FormTableStyle CellSpacing="0" CellPadding="2" Height="60px" BackColor="White" /> <EditColumn ButtonType="ImageButton" InsertText="Guardar" UpdateText="Guardar cambios" UniqueName="EditCommandColumn1" CancelText="Cancelar edición" > </EditColumn> <FormTableButtonRowStyle HorizontalAlign="Right" CssClass="EditFormButtonRow"></FormTableButtonRowStyle> <PopUpSettings Modal="True"></PopUpSettings> </EditFormSettings> </MasterTableView> </telerik:RadGrid><FieldEditors> <telerik:RadFilterTextFieldEditor DataType="System.String" DisplayName="Text" FieldName="ShipName" /></FieldEditors>Hi,
I'm exporting a RadGridview to excel, the only thing that I need is add a new line inside some cells,
the value inside the cell has \t \n but when I export the excel I get something like this <br> inside my excel file.
I'm using the following to change from \t \n to <br> but It doesn't work
if (e.Element == ExportElement.Cell )
{
e.Value = e.Value.ToString().Replace("\t \n", " <br> ");
}
what is the corret way to do it.
Thanks in advance