If the solution to this is already out there, then I apologize but I did some searching and could not find it. We are using DNN 4.5.4 and I am developing a module in C#. I have a problem with the following code:
string strUrl = NodeInfo.URL;
if (strUrl.ToLower().StartsWith("fileid="))
{
objFileInfo = objFileController.GetFileById(Int32.Parse(strUrl.Substring(7)), PortalId);
strUrl = objFileInfo.Folder + objFileInfo.FileName;
}
UrlControl.Url = strUrl;
If the NodeInfo.URL is something like 'FileID=1', everything works fine. However, if the NodeInfo.URL is something like 'http://www.dotnetnuke.com' , the assignment will not work. I have even tried doing a direct assignment via the immediate window in the VS IDE without success. It just leaves 'http://' as the URL. I also noted that if I delete 'http://' from the box, it will display the correct URL the next time I look at it. Now, I am not a member of the Core team and my understanding of DNN is limited, but when I walked through the execution, I noticed the following code being executed in URLControl.vb [paraphrased for brevity]:
Private Sub DoRenderTypeControls()
Dim _Url As String = Convert.ToString(ViewState("Url"))
Dim _Urltype As String = Convert.ToString(ViewState("UrlType"))
Dim objUrls As New UrlController
If _Urltype <> "" Then
' load listitems
Select Case optType.SelectedItem.Value
Case "N" ' None
...
Case "U" ' Url
URLRow.Visible = True
TabRow.Visible = False
FileRow.Visible = False
UserRow.Visible = False
If txtUrl.Text = "" Then
txtUrl.Text = _Url
End If
If txtUrl.Text = "" Then
txtUrl.Text = "http://"
End If
txtUrl.Visible = True
...
End Select
Else
URLRow.Visible = False
TabRow.Visible = False
FileRow.Visible = False
UserRow.Visible = False
End If
End Sub
At the point noted in red, DNN had set the value to 'http://' and so the txtUrl.Text value was not set. Is this intentional?
Any help would be appreciated!