Okay I have a huge reply to this but only because I'm doing a lot of cut and pasting...
You could create a unique .aspx page for your user, then link to that. But I don’t think that is needed and it also could amount to a lot of work. But it is possible. (and I've done similar)
Next thought: Can you just create/open a new window by JavaScript right on the client? The Window pops up from the parent DotNetNuke page. The popup can be populated with any information you want from your server, almost exactly as above. I’ll try to explain myself by example:
For your DNN module
Create a datagrid and populate the columns with all your information. For example:
<asp:templatecolumn visible="False" headertext="CurrentIP">
<itemtemplate>
<%# Server.HtmlDecode(DataBinder.Eval(Container.DataItem,"CurrentIP")) %>
</itemtemplate>
</asp:templatecolumn>
Notice the visible="False". The info is there but not revealed.
One last datagrid column that is visible is a function
<asp:templatecolumn headertext="Title (Description)">
<itemtemplate>
<%# CreateMyWindow(DataBinder.Eval(Container.DataItem,"Title"), _
DataBinder.Eval(Container.DataItem,"ItemID"), _
GetUserName(DataBinder.Eval(Container.DataItem,"CreatedByUser")), _
DataBinder.Eval(Container.DataItem,"CurrentIP"), _
GetItemCount(DataBinder.Eval(Container.DataItem,"ItemID")), _
GetLastDate(DataBinder.Eval(Container.DataItem,"ItemID")), _
DataBinder.Eval(Container.DataItem,"CreatedDate"), _
DataBinder.Eval(Container.DataItem,"ModifiedDate"), _
DataBinder.Eval(Container.DataItem,"Category"), _
DataBinder.Eval(Container.DataItem,"Description"), _
DataBinder.Eval(Container.DataItem,"Code")) %>
</itemtemplate>
</asp:templatecolumn>
The above info is not revealed, but is in the browser source code. Would this be bad for you?
Above, see how CreateMyWindow connects your CreateMyWindow function within your .vb codebehind.
#Region "Function for JavaScript"
'function enables datagrid to format itself with its own cell values
Public Function CreateMyWindow (ByVal SMC_Title As String, ByVal SMC_ItemID As String, ByVal SMC_User As String, ByVal SMC_IP As String, ByVal SMC_Count As String, ByVal SMC_LastDate As Date, ByVal SMC_Created As String, ByVal SMC_Modified As String, ByVal SMC_Category As String, ByVal SMC_Description As String, ByVal SMC_Code As String) As String
Dim s As New StringBuilder
Dim sx As New StringBuilder
Dim i As Integer
s.Length = 0
sx.Length = 0
s.Append("<a ")
s.Append("NAME=")
s.Append(Chr(34) & SMC_Title & Chr(34))
s.Append(" ID=")
s.Append(Chr(34) & SMC_Title & Chr(34))
s.Append(" onclick="" Crossinfo ('")
s.Append(SMC_Code & "','")
s.Append(SMC_Title & "','")
s.Append(SMC_ItemID & "','")
s.Append(SMC_User & "','")
s.Append(SMC_IP & "','")
s.Append(GetCountryName(IP_AddressToNumber(SMC_IP)) & "','")
s.Append(SMC_Count & "','")
s.Append(SMC_LastDate & "','")
s.Append(SMC_Created & "','")
s.Append(SMC_Modified & "','")
s.Append(SMC_Category & "','")
sx.Append(SMC_Description)
sx.Replace(Chr(39), "’")
sx.Replace(vbNewLine, "<br>")
SMC_Description = sx.ToString
s.Append(SMC_Description)
s.Append("','yes');return false"" ")
s.Append("title=""Click here to jump away."" href=""http://www.whatever.com"">")
s.Append(SMC_Title)
s.Append("</a>")
Return s.ToString
End Function
#End Region
the function creates the hyperlink which javascript .js file will use to create the new window:
function Crossinfo(pCode,pTitle,pItem,pUser,pIP,pCount,pLastDate,pCreated,pModified,pCategory,pDescription,pScrolling,My_Html)
{
/*
Crossinfo function opens a new browser window and writes
HTML to display your form away from DotNetNuke.
*/
var DescriptWin;
var s1 = '<Div ';
var s2 = 'HEIGHT=\"450px\" WIDTH=\"750px\" ALIGN=\"middle\" STYLE=\"padding: 5px; border: 2px solid #666666\"';
var s3 = pDescription;
var s4 = "</Div>";
var i=0 ;
s2 += '>';
a= "";
s1 += s2 + s3 +s4;
//alert(s1);
// specify window parameters
DescriptWin = window.open("","DescriptWin","onLoad=window.focus(),width=700,height=450,menubar=no,status=no,scrollbars,resizable,screenX=20,screenY=40,left=480,top=40");
DescriptWin.focus();
// write content to window
DescriptWin.document.writeln('<html BGCOLOR=White LINK=Gray VLINK=Gray style="position: relative; padding-left: 12px; padding-right: 12px; background-image: url(http://localhost/PHDnet/GradientImage.jpg); background-repeat: repeat-y;"><head><title> Powerhouse Data ***** ' + pTitle + ' *****</title>');
DescriptWin.document.writeln('<style type="text/css" media="all">');
DescriptWin.document.writeln('table {');
DescriptWin.document.writeln('border: 0px solid teal;');
DescriptWin.document.writeln('border-collapse: collapse;');
DescriptWin.document.writeln('}');
DescriptWin.document.writeln('td {');
DescriptWin.document.writeln('border: 0px solid teal;');
DescriptWin.document.writeln('padding: 2px;');
DescriptWin.document.writeln('font: 11px verdana;');
DescriptWin.document.writeln('color: #696969;');
DescriptWin.document.writeln('}');
DescriptWin.document.writeln('hr {');
DescriptWin.document.writeln('color: #993366;');
DescriptWin.document.writeln('background-color: #993366;');
DescriptWin.document.writeln('width: 75%;');
DescriptWin.document.writeln('height: 1px;');
DescriptWin.document.writeln('margin-left: auto;');
DescriptWin.document.writeln('margin-right: auto;');
DescriptWin.document.writeln('}');
DescriptWin.document.writeln('</style>');
DescriptWin.document.writeln('<SCRIPT language="JavaScript" src="/PHDnet/DesktopModules/Powerhouse.Test/Gradient.js"></SCRIPT>');
DescriptWin.document.writeln('</head>');
DescriptWin.document.writeln('<BODY LINK=Gray VLINK=Gray style="position: relative; Height: 100%;"> ');
DescriptWin.document.writeln(My_Html);
DescriptWin.document.writeln('<br><br>');
DescriptWin.document.writeln('</body>');
DescriptWin.document.writeln('</html>');
//setTimeout(function(){ DescriptWin.close(); }, 2000);
DescriptWin.document.close();
// debugging...
//for (propertyName in window.self)
//for (propertyName in navigator)
//DescriptWin.document.writeln(documentElement + "<br>");
//DescriptWin.document.writeln("<br> = "+propertyName);
//DescriptWin.document.writeln("<br>propertyName.Name = "+propertyName.Name);
//var GridID = GetGridID("SMCGrid")
//DescriptWin.document.writeln("<br>propertyName="+GridID);
//DescriptWin.document.close();
}
Remember you will have to reference this .js file
If the code above looks like too much, don’t worry, the only important line is the line in red.
I realize I may be straying away from getting you precise help - just throwing out some ideas to consider.