I recognize that code.. ;)
First of all you won't find any inputs with the id PageAddText and PageAddValue cause the runat=server will change the id.
Second error is the AddPage-function that is non existent in your code.
I have already changed my code to <%=PageAddText.ClientID%> even before you replied.
I tried putting a alert in System.js just after the PageBrowser popup loads. Then when I click select button in the popup I can see the PageAddText and PageAddValue getting loaded (with the selected page name and ID) in the main window. But once I click the OK button in the alert box, the values are getting cleared in the text boxes.
Hi,
You can also think of using HyperLinkProperties.aspx page (which in turn opens the PageBrowser)
FYI, I open HyperLinkProperties.aspx on button click using the following JS code:-
<script type='text/javascript' src="<%# EPiServer.UriSupport.ResolveUrlFromUtilBySettings("javascript/episerverscriptmanager.js") %>"></script>
<script type='text/javascript' src="<%# EPiServer.UriSupport.ResolveUrlFromUIBySettings("javascript/system.js") %>" ></script>
<script type='text/javascript' src="<%# EPiServer.UriSupport.ResolveUrlFromUIBySettings("javascript/system.aspx") %>" ></script>
<script type="text/javascript">
function AddPageURL(postbackCtrlId)
{
ProcessLinkDialog(postbackCtrlId, "", "", "", "",-1, "");
}
function ProcessLinkDialog(postbackCtrlId, existingLink, existingTitle, existingText, existingTarget, index , callingLanguageBranch)
{
var url = '<%# EPiServer.UriSupport.ResolveUrlFromUIBySettings("editor/dialogs/HyperlinkProperties.aspx") %>';
url += '?url='+ existingLink;
var returnvalue;
if(callingLanguageBranch.length=='undefined')
{
callingLanguageBranch = '<%# Page.Request.QueryString["epspagelanguagebranch"] != null ? Page.Request.QueryString["epspagelanguagebranch"] : "" %>';
}
var pageId = '<%# Page.Request.QueryString["pageid"] != null ? Page.Request.QueryString["pageid"] : "0" %>';
var parentPageId = '<%# Page.Request.QueryString["parentId"] != null ? Page.Request.QueryString["parentId"] : "0" %>';
var folderId = '<%# Page.Request.QueryString["folderId"] != null ? Page.Request.QueryString["folderId"] : Page.Request.QueryString["pageid"] %>';
var linkAttributes = new Object();
linkAttributes.href = existingLink;
linkAttributes.target = existingTarget;
linkAttributes.language = callingLanguageBranch;
linkAttributes.title = existingTitle;
linkAttributes.text = existingText;
linkAttributes.imageDialogUrl = "";
linkAttributes.resizeDialogUrl = "";
linkAttributes.parentWindow = window;
linkAttributes.fileManagerBrowserUrl = '<%# EPiServer.UriSupport.ResolveUrlFromUIBySettings("edit/FileManagerBrowser.aspx") %>?id=' + pageId + '&parent=' + parentPageId + '&folderid=' + folderId;
var dialogArguments = linkAttributes;
var features = {width: 460, height: 412};
var callbackArguments = new Object();
callbackArguments.postbackCtrlId = postbackCtrlId;
callbackArguments.index = index;
callbackArguments.callingLanguageBranch = callingLanguageBranch;
EPi.CreateDialog(url,OnEPiDialogClosed,callbackArguments,dialogArguments,features);
}
function OnEPiDialogClosed(returnValue)
{
if (returnValue != undefined && returnValue != 0 && returnValue != -1)
{ //do your stuff here Haridaas
}
}
Enjoy EPi
Anadi
Hi,
You can also think of using HyperLinkProperties.aspx page (which in turn opens the PageBrowser)
FYI, I open HyperLinkProperties.aspx on button click using the following JS code:-
<script type='text/javascript' src="<%# EPiServer.UriSupport.ResolveUrlFromUtilBySettings("javascript/episerverscriptmanager.js") %>"></script>
<script type='text/javascript' src="<%# EPiServer.UriSupport.ResolveUrlFromUIBySettings("javascript/system.js") %>" ></script>
<script type='text/javascript' src="<%# EPiServer.UriSupport.ResolveUrlFromUIBySettings("javascript/system.aspx") %>" ></script>
<script type="text/javascript">
function AddPageURL(postbackCtrlId)
{
ProcessLinkDialog(postbackCtrlId, "", "", "", "",-1, "");
}
function ProcessLinkDialog(postbackCtrlId, existingLink, existingTitle, existingText, existingTarget, index , callingLanguageBranch)
{
var url = '<%# EPiServer.UriSupport.ResolveUrlFromUIBySettings("editor/dialogs/HyperlinkProperties.aspx") %>';
url += '?url='+ existingLink;
var returnvalue;
if(callingLanguageBranch.length=='undefined')
{
callingLanguageBranch = '<%# Page.Request.QueryString["epspagelanguagebranch"] != null ? Page.Request.QueryString["epspagelanguagebranch"] : "" %>';
}
var pageId = '<%# Page.Request.QueryString["pageid"] != null ? Page.Request.QueryString["pageid"] : "0" %>';
var parentPageId = '<%# Page.Request.QueryString["parentId"] != null ? Page.Request.QueryString["parentId"] : "0" %>';
var folderId = '<%# Page.Request.QueryString["folderId"] != null ? Page.Request.QueryString["folderId"] : Page.Request.QueryString["pageid"] %>';
var linkAttributes = new Object();
linkAttributes.href = existingLink;
linkAttributes.target = existingTarget;
linkAttributes.language = callingLanguageBranch;
linkAttributes.title = existingTitle;
linkAttributes.text = existingText;
linkAttributes.imageDialogUrl = "";
linkAttributes.resizeDialogUrl = "";
linkAttributes.parentWindow = window;
linkAttributes.fileManagerBrowserUrl = '<%# EPiServer.UriSupport.ResolveUrlFromUIBySettings("edit/FileManagerBrowser.aspx") %>?id=' + pageId + '&parent=' + parentPageId + '&folderid=' + folderId;
var dialogArguments = linkAttributes;
var features = {width: 460, height: 412};
var callbackArguments = new Object();
callbackArguments.postbackCtrlId = postbackCtrlId;
callbackArguments.index = index;
callbackArguments.callingLanguageBranch = callingLanguageBranch;
EPi.CreateDialog(url,OnEPiDialogClosed,callbackArguments,dialogArguments,features);
}
function OnEPiDialogClosed(returnValue)
{
if (returnValue != undefined && returnValue != 0 && returnValue != -1)
{ //do your stuff here Haridaas
}
}
Enjoy EPi
Anadi
Hi,
Did you manage to make it work? If so, can you advice how to addpt the code above to use LinkCollection instead?
Thanks
A page in view mode has a text box and a button. On button click we would like to bring the
/edit/pagebrowser.aspx Dialog popup. When a page is selected in the Page Browser the page
will be populated in the text box on the page in view mode.
We are able to bring the PageBrowser popup, but the select button does not function.
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="head1" runat="server">
<title>FIFABlankPage</title>
<script language="javascript" type="text/javascript">
function OpenGetPageDialog()
{
document.getElementById('PageAddValue').value = "";
document.getElementById('PageAddText').value = "";
EPi.CreatePageBrowserDialog('<%=
EPiServer.UriSupport.ResolveUrlFromUIBySettings("edit/pagebrowser.aspx")
%>','','False','False','PageAddText','PageAddValue','en', PageDialogClosed);
}
function PageDialogClosed(returnValue, callbackArguments) {
if (document.getElementById('PageAddValue').value.length > 0) {
// document.getElementById('PageAddValue') contains the PageId
AddPage(document.getElementById('PageAddText').value,
document.getElementById('PageAddValue').value);
}
}
</script>
</head>
<body>
<form runat="server" id="form1">
<div>
<asp:TextBox runat="server" ID="PageAddText"></asp:TextBox>
<asp:TextBox runat="server" ID="PageAddValue"></asp:TextBox>
<asp:Button runat="server" ID="btnBrowse" Text="Browse"
OnClientClick="OpenGetPageDialog()" />
</div>
</form>
</body>
</html>
I am able to view the pagebrowser but when I select a page it is not returning the selected page to the 'PageAddText' textbox