<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Thuan V. Nguyen &#187; Dotnetnuke</title>
	<atom:link href="http://www.a8le.com/category/dotnetnuke/feed" rel="self" type="application/rss+xml" />
	<link>http://www.a8le.com</link>
	<description>Full steam ahead.</description>
	<lastBuildDate>Thu, 08 Jul 2010 02:45:57 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Dotnetnuke Error: BC30451</title>
		<link>http://www.a8le.com/dotnetnuke-error-bc30451</link>
		<comments>http://www.a8le.com/dotnetnuke-error-bc30451#comments</comments>
		<pubDate>Sun, 14 Dec 2008 23:29:17 +0000</pubDate>
		<dc:creator>a8le</dc:creator>
				<category><![CDATA[Dotnetnuke]]></category>
		<category><![CDATA[bc50451]]></category>
		<category><![CDATA[initialize not declared]]></category>

		<guid isPermaLink="false">http://www.a8le.com/?p=236</guid>
		<description><![CDATA[For all interested parties if you run into this error after compiling a custom module&#8230;
Dotnetnuke BC30451: Name &#8216;Initialize&#8217; is not declared.
It is most likely you didn&#8217;t change your reference paths in Visual Studio.
Brian Dukes ran into this problem, discussed here. His solution was to copy a fresh copy of the core Dotnetnuke.dll into your root [...]]]></description>
			<content:encoded><![CDATA[<p>For all interested parties if you run into this error after compiling a custom module&#8230;</p>
<p><strong>Dotnetnuke BC30451: Name &#8216;Initialize&#8217; is not declared.</strong></p>
<p>It is most likely you didn&#8217;t change your reference paths in Visual Studio.</p>
<p>Brian Dukes ran into this problem, discussed <a href="http://weblogs.asp.net/briandukes/archive/2008/02/20/dotnetnuke-site-compile-error-quot-bc30451-name-initialize-is-not-declared-quot.aspx" target="_blank">here</a>. His solution was to copy a fresh copy of the core Dotnetnuke.dll into your root /bin folders but if you don&#8217;t change the reference paths in Visual Studio, each time you compile your custom module the Dotnetnuke.dll will be replaced with the an older one if it exists.</p>
<p>Don&#8217;t forget to change the reference paths for both your main module project and the corresponding sqldataprovider project because it will also have the same reference paths.</p>
<p>HTH, Thuan.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.a8le.com/dotnetnuke-error-bc30451/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dotnetnuke Infinite Redirect Loop</title>
		<link>http://www.a8le.com/dotnetnuke-infinite-redirect-loop</link>
		<comments>http://www.a8le.com/dotnetnuke-infinite-redirect-loop#comments</comments>
		<pubDate>Sat, 13 Dec 2008 21:52:12 +0000</pubDate>
		<dc:creator>a8le</dc:creator>
				<category><![CDATA[Dotnetnuke]]></category>
		<category><![CDATA[infinite]]></category>
		<category><![CDATA[loop]]></category>
		<category><![CDATA[redirect]]></category>

		<guid isPermaLink="false">http://www.a8le.com/?p=223</guid>
		<description><![CDATA[It had be a long time since I had worked with Dotnetnuke but it was time for me to upgrade a few of my Dotnetnuke sites.  And as always DNN&#8217;s installation/upgrading is again culpable for all my recent stress.
The site upgrade in question was going from DNN 3.3.7 to DNN 4.9.0 and the error I [...]]]></description>
			<content:encoded><![CDATA[<p>It had be a long time since I had worked with Dotnetnuke but it was time for me to upgrade a few of my Dotnetnuke sites.  And as always DNN&#8217;s installation/upgrading is again culpable for all my recent stress.</p>
<p>The site upgrade in question was going from DNN 3.3.7 to DNN 4.9.0 and the error I kept on getting was an infinite loop redirecting me back to this URL: <strong>http://mysite/default.aspx?alias=http://mysite/myalias</strong> with a blank screen.</p>
<p>Internet Explorer didn&#8217;t know what to do with it so it infinitely reloaded the URL.  Firefox was a little smarter, it detected the loop therefore stopped it and gave out this error message: <strong>&#8220;Firefox has detected that the server is redirecting the request for this address in a way that will never complete.&#8221;</strong></p>
<p>So the search was on, using these keywords&#8230; dotnetnuke, infinite, redirect, and loop. I found a couple promising articles with potential solutions to my problem&#8230;</p>
<p><a href="http://www.bestwebsites.co.nz/dotnetnuke/solving-the-dotnetnuke-redirect-loop/" target="_blank">http://www.bestwebsites.co.nz/dotnetnuke/solving-the-dotnetnuke-redirect-loop/</a></p>
<p><a href="http://weblogs.asp.net/christoc/archive/2008/06/19/dotnetnuke-homepage-won-t-load-keeps-redirecting.aspx" target="_blank">http://weblogs.asp.net/christoc/archive/2008/06/19/dotnetnuke-homepage-won-t-load-keeps-redirecting.aspx</a></p>
<p>But after  much trial and error with my trust settings and going straight to the database and changing my portal&#8217;s aliases per those solutions, I was still at a dead end.</p>
<p>It wasn&#8217;t until I carefully read this John Mitchell forum <a href="http://www.snapsis.com/DotNetNuke/Support/tabid/560/forumid/11/postid/6599/view/topic/infinite-looping-after-upgrade.aspx" target="_blank">thread</a> did I find my solution. The problem was the new Default.aspx page. After the upgrade the page code went from&#8230;</p>
<blockquote><p>&lt;%@ Page Language=&#8221;vb&#8221; AutoEventWireup=&#8221;false&#8221; Explicit=&#8221;True&#8221; Inherits=&#8221;DotNetNuke.Framework.DefaultPage&#8221; CodeFile=&#8221;Default.aspx.vb&#8221; %&gt;<br />
&lt;%@ Register TagPrefix=&#8221;dnn&#8221; Namespace=&#8221;DotNetNuke.Common.Controls&#8221; Assembly=&#8221;DotNetNuke&#8221; %&gt;<br />
&lt;asp:literal id=&#8221;skinDocType&#8221; runat=&#8221;server&#8221;&gt;&lt;/asp:literal&gt;<br />
&lt;html &lt;%=xmlns%&gt; &lt;%=LanguageCode%&gt;&gt;<br />
&lt;head id=&#8221;Head&#8221; runat=&#8221;server&#8221;&gt;<br />
&lt;meta id=&#8221;MetaRefresh&#8221; runat=&#8221;Server&#8221; http-equiv=&#8221;Refresh&#8221; name=&#8221;Refresh&#8221; /&gt;<br />
&lt;meta id=&#8221;MetaDescription&#8221; runat=&#8221;Server&#8221; name=&#8221;DESCRIPTION&#8221; /&gt;<br />
&lt;meta id=&#8221;MetaKeywords&#8221; runat=&#8221;Server&#8221; name=&#8221;KEYWORDS&#8221; /&gt;<br />
&lt;meta id=&#8221;MetaCopyright&#8221; runat=&#8221;Server&#8221; name=&#8221;COPYRIGHT&#8221; /&gt;<br />
&lt;meta id=&#8221;MetaGenerator&#8221; runat=&#8221;Server&#8221; name=&#8221;GENERATOR&#8221; /&gt;<br />
&lt;meta id=&#8221;MetaAuthor&#8221; runat=&#8221;Server&#8221; name=&#8221;AUTHOR&#8221; /&gt;<br />
&lt;meta name=&#8221;RESOURCE-TYPE&#8221; content=&#8221;DOCUMENT&#8221; /&gt;<br />
&lt;meta name=&#8221;DISTRIBUTION&#8221; content=&#8221;GLOBAL&#8221; /&gt;<br />
&lt;meta name=&#8221;ROBOTS&#8221; content=&#8221;INDEX, FOLLOW&#8221; /&gt;<br />
&lt;meta name=&#8221;REVISIT-AFTER&#8221; content=&#8221;1 DAYS&#8221; /&gt;<br />
&lt;meta name=&#8221;RATING&#8221; content=&#8221;GENERAL&#8221; /&gt;<br />
&lt;meta http-equiv=&#8221;PAGE-ENTER&#8221; content=&#8221;RevealTrans(Duration=0,Transition=1)&#8221; /&gt;<br />
&lt;style type=&#8221;text/css&#8221; id=&#8221;StylePlaceholder&#8221; runat=&#8221;server&#8221;&gt;&lt;/style&gt;<br />
&lt;asp:placeholder id=&#8221;CSS&#8221; runat=&#8221;server&#8221; /&gt;<br />
&lt;/head&gt;<br />
&lt;body id=&#8221;Body&#8221; runat=&#8221;server&#8221; &gt;<br />
&lt;noscript&gt;&lt;/noscript&gt;<br />
&lt;dnn:Form id=&#8221;Form&#8221; runat=&#8221;server&#8221; ENCTYPE=&#8221;multipart/form-data&#8221; style=&#8221;height: 100%;&#8221; autocomplete=&#8221;off&#8221;&gt;<br />
&lt;asp:Label ID=&#8221;SkinError&#8221; runat=&#8221;server&#8221; CssClass=&#8221;NormalRed&#8221; Visible=&#8221;False&#8221;&gt;&lt;/asp:Label&gt;<br />
&lt;asp:PlaceHolder ID=&#8221;SkinPlaceHolder&#8221; runat=&#8221;server&#8221; /&gt;<br />
&lt;input id=&#8221;ScrollTop&#8221; runat=&#8221;server&#8221; name=&#8221;ScrollTop&#8221; type=&#8221;hidden&#8221; /&gt;<br />
&lt;input id=&#8221;__dnnVariable&#8221; runat=&#8221;server&#8221; name=&#8221;__dnnVariable&#8221; type=&#8221;hidden&#8221; /&gt;<br />
&lt;/dnn:Form&gt;<br />
&lt;/body&gt;<br />
&lt;/html&gt;</p></blockquote>
<p>to&#8230;</p>
<blockquote><p>&lt;%@ Page language=&#8221;VB&#8221; %&gt;<br />
&lt;%@ Import Namespace=&#8221;DotNetNuke&#8221; %&gt;</p>
<p>&lt;script runat=&#8221;server&#8221;&gt;</p>
<p>Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)</p>
<p>Dim DomainName As String<br />
Dim ServerPath As String<br />
Dim URL() As String<br />
Dim intURL As Integer</p>
<p>&#8216; parse the Request URL into a Domain Name token<br />
URL = Split(Request.Url.ToString(), &#8220;/&#8221;)<br />
For intURL = 2 To URL.GetUpperBound(0)<br />
Select Case URL(intURL).ToLower<br />
Case &#8220;admin&#8221;, &#8220;desktopmodules&#8221;, &#8220;mobilemodules&#8221;, &#8220;premiummodules&#8221;<br />
Exit For<br />
Case Else<br />
&#8216; check if filename<br />
If InStr(1, URL(intURL), &#8220;.aspx&#8221;) = 0 Then<br />
DomainName = DomainName &amp; IIf(DomainName &lt;&gt; &#8220;&#8221;, &#8220;/&#8221;, &#8220;&#8221;) &amp; URL(intURL)<br />
Else<br />
Exit For<br />
End If<br />
End Select<br />
Next intURL</p>
<p>&#8216; format the Request.ApplicationPath<br />
ServerPath = Request.ApplicationPath<br />
If Mid(ServerPath, Len(ServerPath), 1) &lt;&gt; &#8220;/&#8221; Then<br />
ServerPath = ServerPath &amp; &#8220;/&#8221;<br />
End If</p>
<p>DomainName = ServerPath &amp; &#8220;Default.aspx?alias=&#8221; &amp; DomainName</p>
<p>Response.Redirect(DomainName,True)</p>
<p>End Sub</p>
<p>&lt;/script&gt;</p></blockquote>
<p>This made me look at all my files a second time. What I found was that the old Default.aspx was backed up as old_Default.aspx and a new one was created. So my solution was simply to replace the original Default.aspx page with the new one generated from the upgrade.</p>
<p>And although, my solution got the site working again and under ASP.NET v2 (the reason for my upgrade), it also leaves me to question what I did, if I messed anything fundamental up, and why the Dotnetnuke Team changed the Default.aspx page.</p>
<p>If anyone could enlighten me on this, please leave a comment.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.a8le.com/dotnetnuke-infinite-redirect-loop/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>ASP.net 1.1 Repeater Columns</title>
		<link>http://www.a8le.com/35</link>
		<comments>http://www.a8le.com/35#comments</comments>
		<pubDate>Tue, 13 Nov 2007 16:52:43 +0000</pubDate>
		<dc:creator>a8le</dc:creator>
				<category><![CDATA[ASP.net 1.1]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Dotnetnuke]]></category>

		<guid isPermaLink="false">http://www.a8le.com/archives/35</guid>
		<description><![CDATA[While writing a script to mass approve posts on a site, similar to deleting all unwanted email using: a repeater (not a datagrid), a checkbox in each indexItem, and a button; I ran into a common problem for many&#8230; ASP.net repeaters don&#8217;t have columns. I searched the net and visited two of my favorite forums [...]]]></description>
			<content:encoded><![CDATA[<p>While writing a script to mass approve posts on a site, similar to deleting all unwanted email using: a repeater (not a datagrid), a checkbox in each indexItem, and a button; I ran into a common problem for many&#8230; ASP.net repeaters don&#8217;t have columns. I searched the net and visited two of my favorite forums looking for help and came up with nothing&#8230;</p>
<p>Here&#8217;s my Psuedo/Logic:<br />
1) Load Repeater with list of &#8220;UNmoderated&#8221; items<br />
2) Put a checkbox inside the repeaters ItemTemplate<br />
3) Add code to button (dosomething if checkbox is checked)</p>
<p><strong>Problem:</strong><br />
I couldn&#8217;t locate the column with the PrimaryUniqueID because there are no columns in repeaters, but my Stored Procedure &#8220;requires&#8221; the PrimaryUniqueID.</p>
<blockquote><p> <u>Button code:</u><br />
Private Sub MassApprove_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MassApprove.Click<br />
Try<br />
Dim MyRptItem As RepeaterItem<br />
For Each MyRptItem In MyRepeater.Items<br />
Dim chbxMassApprove As CheckBox = CType(MyRptItem.FindControl(&#8220;chbxMassApprove&#8221;), CheckBox)<br />
<strike>Dim PrimaryUniqueID As String = MyRptItem.DataItem(PrimaryUniqueID)</strike> <strong>PROBLEMATIC LINE</strong><br />
If chbxMassApprove.Checked = True Then<br />
&#8216;DO THE MASS APPROVE<br />
&#8216;LOOP THRU STORED PROCEDURE<br />
End If<br />
Next<br />
Catch exc As Exception<br />
Response.Write(exc.ToString)<br />
End Try<br />
End Sub</p></blockquote>
<p><strong>Solution: </strong><br />
I used this as a workaround if this helps anyone&#8230;</p>
<blockquote><p><u>Front End:</u><br />
Text=&#8217;&lt;%# DataBinder.Eval(Container, &#8220;DataItem.PrimaryUniqueID&#8221;) %&gt;&#8217;</p>
<p><u>Back End:</u><br />
Dim PrimaryUniqueID As String = ckbxMassApprove.Text.ToString</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.a8le.com/35/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>ASP.net Paging</title>
		<link>http://www.a8le.com/aspnet-paging</link>
		<comments>http://www.a8le.com/aspnet-paging#comments</comments>
		<pubDate>Thu, 18 Oct 2007 14:12:10 +0000</pubDate>
		<dc:creator>a8le</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Dotnetnuke]]></category>

		<guid isPermaLink="false">http://www.a8le.com/archives/24</guid>
		<description><![CDATA[So, the users of a certain website of mine have been requesting that I add paging to one of my controls.  I initially didn&#8217;t want to do it, not because I couldn&#8217;t do it. But because the control didn&#8217;t really call for it. But they are my users, without them the site wouldn&#8217;t be [...]]]></description>
			<content:encoded><![CDATA[<p>So, the users of a certain website of mine have been requesting that I add paging to one of my controls.  I initially didn&#8217;t want to do it, not because I couldn&#8217;t do it. But because the control didn&#8217;t really call for it. But they are my users, without them the site wouldn&#8217;t be there right?  So I went ahead with it.  Its been a while since I used any paging code, so I was refreshed after reviewing ASP.net paging webcontrols:</p>
<blockquote><p><code>System.Web.UI.WebControls.PagedDataSource</code></p></blockquote>
<p>What we have to do for us to paging through our data vs. displaying all of it at once?  We simply inject the paging into our data before displaying it.  In my case, I am using a repeater:</p>
<blockquote><p><code>'get the data<br />
Dim myData As System.Collections.ArrayList<br />
myData = ** myStoredProcedure **<br />
'ensure there is data to work with<br />
If myData .Count &gt; 0 Then<br />
'create a new instance of PagedDataSource<br />
myPagedDataSource = New System.Web.UI.WebControls.PagedDataSource<br />
'set my pagin preferences<br />
myPagedDataSource.DataSource = myData<br />
myPagedDataSource.AllowPaging = True<br />
myPagedDataSource.PageSize = 5<br />
myPagedDataSource.CurrentPageIndex = myCurrentPageIndex<br />
'then finally bind the data to my repeater<br />
myRepeater.DataSource = myPagedDataSource<br />
myRepeater.DataBind()<br />
End If</code></p></blockquote>
<p>Quite simple to use.  Knowing that the webcontrol is there really is the hard part of it all.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.a8le.com/aspnet-paging/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Free Dotnetnuke Skins</title>
		<link>http://www.a8le.com/free-dotnetnuke-skins</link>
		<comments>http://www.a8le.com/free-dotnetnuke-skins#comments</comments>
		<pubDate>Thu, 11 Oct 2007 14:48:59 +0000</pubDate>
		<dc:creator>a8le</dc:creator>
				<category><![CDATA[Dotnetnuke]]></category>

		<guid isPermaLink="false">http://www.a8le.com/archives/20</guid>
		<description><![CDATA[I wanted to have freedotnetnukeskins.com up and running by November 1, 2007. But with the way things are going with Lunarpages.com&#8230; I am going to have to wait until 2008.
]]></description>
			<content:encoded><![CDATA[<p>I wanted to have freedotnetnukeskins.com up and running by November 1, 2007. But with the way things are going with Lunarpages.com&#8230; I am going to have to wait until 2008.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.a8le.com/free-dotnetnuke-skins/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DNN Installs</title>
		<link>http://www.a8le.com/dnn-installs</link>
		<comments>http://www.a8le.com/dnn-installs#comments</comments>
		<pubDate>Mon, 08 Oct 2007 15:24:00 +0000</pubDate>
		<dc:creator>a8le</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Dotnetnuke]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.a8le.com/archives/19</guid>
		<description><![CDATA[Installing DNN on shared hosting as always been a hard task.  And to think I&#8217;d have it down by now. I at least remember by heart the basics:

Download the software from the DNN site
Upload the files to the shared hosting
Ensure permissions for the ASP.net user are correct
Setup the database and user
Config the webconfig, ie. [...]]]></description>
			<content:encoded><![CDATA[<p>Installing DNN on shared hosting as always been a hard task.  And to think I&#8217;d have it down by now. I at least remember by heart the basics:</p>
<ol>
<li>Download the software from the <a href="http://www.dotnetnuke.com" target="_blank">DNN site</a></li>
<li>Upload the files to the shared hosting</li>
<li>Ensure permissions for the ASP.net user are correct</li>
<li>Setup the database and user</li>
<li>Config the webconfig, ie. enter in the DB connection data/string</li>
<li>Go to browser, invoke install @ http://mydomain.com/install</li>
<li>Change admin and host passwords</li>
</ol>
<p>Thats is normally it, unless you run into permissions problems; which is often on shared hosting servers.</p>
<p>But while trying to setup my Freedotnetnukeskins.com on Lunarpages.com servers, we (support and I) discovered that <strong>the directory &#8220;skins&#8221; CANNOT be used as your virtual directory</strong>. My guess is this might be in the DNN manual somewhere, but we were using the &#8220;auto install DNN&#8221; plesk so it was hard to pick out.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.a8le.com/dnn-installs/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
