<%@ Assembly Name="$SharePoint.Project.AssemblyFullName$" %>
<%@ Import Namespace="Microsoft.SharePoint.ApplicationPages" %>
<%@ Register Tagprefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register Tagprefix="asp" Namespace="System.Web.UI" Assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" %>
<%@ Import Namespace="Microsoft.SharePoint" %>
<%@ Assembly Name="Microsoft.Web.CommandUI, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="RadDateTest.aspx.cs" Inherits="Test.SharePoint.Layouts.RadDateTest" DynamicMasterPageFile="~masterurl/default.master" %>
<
asp:Content
ID
=
"PageHead"
ContentPlaceHolderID
=
"PlaceHolderAdditionalPageHead"
runat
=
"server"
>
</
asp:Content
>
<
asp:Content
ID
=
"Main"
ContentPlaceHolderID
=
"PlaceHolderMain"
runat
=
"server"
>
<
asp:Panel
ID
=
"pnlControls"
runat
=
"server"
>
</
asp:Panel
>
</
asp:Content
>
<
asp:Content
ID
=
"PageTitle"
ContentPlaceHolderID
=
"PlaceHolderPageTitle"
runat
=
"server"
>
Application Page
</
asp:Content
>
<
asp:Content
ID
=
"PageTitleInTitleArea"
ContentPlaceHolderID
=
"PlaceHolderPageTitleInTitleArea"
runat
=
"server"
>
My Application Page
</
asp:Content
>
using
System;
using
Microsoft.SharePoint;
using
Microsoft.SharePoint.WebControls;
using
System.Web.UI.WebControls;
using
Telerik.Web.UI;
namespace
Test.SharePoint.Layouts
{
public
partial
class
RadDateTest : LayoutsPageBase
{
protected
void
Page_Load(
object
sender, EventArgs e)
{
CreateDateField(0,
"One"
,
false
);
CreateDateField(1,
"Two"
,
true
);
}
private
void
CreateDateField(
int
ID,
string
name,
bool
isRequired)
{
// Creates a lable with the name of the selection...
Label lbl =
new
Label();
lbl.Width = 160;
lbl.ID =
"lblItem"
+ ID.ToString();
lbl.Text = name +
":"
;
lbl.Style.Add(
"font-weight"
,
"700"
);
this
.pnlControls.Controls.Add(lbl);
// Creates a date picker text box
RadDatePicker txt =
new
RadDatePicker();
txt.Width = 230;
txt.ID =
"datItem"
+ ID.ToString();
txt.Style.Add(
"margin-top"
,
"3px"
);
txt.Calendar.ShowRowHeaders =
false
;
txt.ShowPopupOnFocus =
true
;
this
.pnlControls.Controls.Add(txt);
// If it is required, then add a lable showing its required...
if
(isRequired)
{
Label lblReq =
new
Label();
lblReq.ID =
"lblRequired"
+ ID.ToString();
lblReq.Text =
"*"
;
lblReq.Style.Add(
"margin-left"
,
"15px"
);
lblReq.Style.Add(
"color"
,
"Red"
);
this
.pnlControls.Controls.Add(lblReq);
}
// Add a new lable for a new line feed in HTML.
this
.pnlControls.Controls.Add(
new
Label() { Text =
"<br />"
});
}
}
}
public
void
ProcessRequest(HttpContext context)
{
var editor =
new
Telerik.Web.UI.RadEditor();
editor.ContentFilters = Telerik.Web.UI.EditorFilters.DefaultFilters | Telerik.Web.UI.EditorFilters.PdfExportFilter;
//editor.ExportContent += new Telerik.Web.UI.EditorExportContentEventHandler(editor_ExportContent);
editor.ExportSettings.FileName =
"cv"
;
editor.ExportSettings.Pdf.Title =
"TEST"
;
editor.Content =
"<b>HTML</b>"
;
editor.ExportToPdf();
context.Response.Write(
"H"
);
}
public class CustomProvider : FileSystemContentProvider
{
public CustomProvider(HttpContext context, string[] searchPatterns, string[] viewPaths, string[] uploadPaths, string[] deletePaths, string selectedUrl, string selectedItemTag)
: base(context, searchPatterns, viewPaths, uploadPaths, deletePaths, selectedUrl, selectedItemTag)
{ }
public override DirectoryItem ResolveDirectory(string path)
{
DirectoryItem originalFolder = base.ResolveDirectory(path);
FileItem[] originalFiles = originalFolder.Files;
List<FileItem> filteredFiles = new List<FileItem>();
// Filter the files
foreach (FileItem originalFile in originalFiles)
{
if (!this.IsFiltered(originalFile.Name))
{
filteredFiles.Add(originalFile);
}
}
DirectoryItem newFolder = new DirectoryItem(originalFolder.Name, originalFolder.Location, originalFolder.FullPath, originalFolder.Tag, originalFolder.Permissions, filteredFiles.ToArray(), originalFolder.Directories);
return newFolder;
}
public override DirectoryItem ResolveRootDirectoryAsTree(string path)
{
DirectoryItem originalFolder = base.ResolveRootDirectoryAsTree(path);
DirectoryItem[] originalDirectories = originalFolder.Directories;
List<DirectoryItem> filteredDirectories = new List<DirectoryItem>();
// Filter the folders
foreach (DirectoryItem originalDir in originalDirectories)
{
if (!this.IsFiltered(originalDir.Name))
{
filteredDirectories.Add(originalDir);
}
}
DirectoryItem newFolder = new DirectoryItem(originalFolder.Name, originalFolder.Location, originalFolder.FullPath, originalFolder.Tag, originalFolder.Permissions, originalFolder.Files, filteredDirectories.ToArray());
return newFolder;
}
private bool IsFiltered(string name)
{
return name == Web.SETTINGS_FILENAME;
}
<
telerik:RadAjaxPanel
ID
=
"RadAjaxPanel1"
runat
=
"server"
LoadingPanelID
=
"RadAjaxLoadingPanel1"
>
<
telerik:RadTreeView
ID
=
"RadTreeView1"
CheckBoxes
=
"true"
Runat
=
"server"
OnContextMenuItemClick
=
"menuClicked"
OnClientContextMenuItemClicking
=
"clientMenuClicking"
OnNodeEdit
=
"RadTreeView1_NodeEdit"
>
<
ContextMenus
>
<
telerik:RadTreeViewContextMenu
ID
=
"ctxMenuAdd"
runat
=
"server"
>
<
Items
>
<
telerik:RadMenuItem
Value
=
"addNode"
Text
=
"Add Node"
>
</
telerik:RadMenuItem
>
<
telerik:RadMenuItem
Value
=
"delNode"
Text
=
"Delete Node"
>
</
telerik:RadMenuItem
>
<
telerik:RadMenuItem
Value
=
"renNode"
Text
=
"Rename Node"
>
</
telerik:RadMenuItem
>
</
Items
>
</
telerik:RadTreeViewContextMenu
>
</
ContextMenus
>
</
telerik:RadTreeView
>
</
telerik:RadAjaxPanel
>
function clientMenuClicking(sender, args)
{
var menuItem = args.get_menuItem();
var treeNode = args.get_node();
menuItem.get_menu().hide();
switch (menuItem.get_value())
{
case "addNode":
var windowResult = window.showModalDialog("newNode.html", "Enter Value", "dialogHeight: 300px; dialogWidth: 300px;");
document.getElementById("HiddenField1").value = windowResult;
break;
case "renNode":
treeNode.startEdit();
break;
}
}
protected void RadTreeView1_NodeEdit(object sender, RadTreeNodeEditEventArgs e)
{
e.Node.Text = e.Text;
}
The problem is, when I right click on the node and select "Rename" the node turns into a text box only for a split second, then it goes back to normal mode.
It seems when I click the rename option, the client side code is firing and the node is turning into a text box. but then somehow a page postback is occurring which is removing the textbox.
How can I get rid of the issue?