I’ve finally deployed the DotNetNuke site I’ve been working on. After deployment is when the most obvious things pop up.

For instance, in DotNetNuke when you search for something in the site it will return a list of links to what it finds. What it won’t do is display something friendly like “No Search Results Found” if it doesn’t find anything. Dumb and not very user friendly.

I did find what I thought would be the solution at ecktwo, but it didn’t work in Firefox due to the


which doesn’t work in Firefox within a table, which is what the Search Results are generated using the ASP.NET grid view. So, I thought I’d take a stab at building something that worked for both IE and Firefox.

Make a copy of your admin\Search\SearchResults.ascx file and then open the file in notepad. Apply the following code that I’ve highlighted in red:

<%@ Control Language=”vb” AutoEventWireup=”false” Explicit=”True” Inherits=”DotNetNuke.Modules.SearchResults.SearchResults” CodeFile=”SearchResults.ascx.vb” %>

<asp:Datagrid id=”dgResults” runat=”server” AutoGenerateColumns=”False” AllowPaging=”True” BorderStyle=”None”
PagerStyle-CssClass=”NormalBold” ShowHeader=”False” CellPadding=”4″ GridLines=”None”>
<asp:Label id=lblNo runat=”server” Text='<%# DataBinder.Eval(Container, “ItemIndex”) + 1 %>’ CssClass=”SubHead”>
<asp:HyperLink id=”lnkTitle” runat=”server” Name=”result” CssClass=”SubHead” NavigateUrl='<%# FormatURL(DataBinder.Eval(Container.DataItem,”TabId”),
DataBinder.Eval(Container.DataItem,”Guid”)) %>’ Text='<%# DataBinder.Eval(Container.DataItem, “Title”) %>’>
<asp:Label id=”lblRelevance” runat=”server” CssClass=”Normal” Text='<%# FormatRelevance(DataBinder.Eval(Container.DataItem, “Relevance”)) %>’ >
<asp:Label id=”lblSummary” runat=”server” CssClass=”Normal” Text='<%# DataBinder.Eval(Container.DataItem, “Description”) + “<br>” %>’ Visible=”<%# ShowDescription() %>”>
<asp:HyperLink id=”lnkLink” runat=”server” CssClass=”CommandButton” NavigateUrl='<%# FormatURL(DataBinder.Eval(Container.DataItem,”TabId”),
DataBinder.Eval(Container.DataItem,”Guid”)) %>’ Text='<%# FormatURL(DataBinder.Eval(Container.DataItem,”TabId”),
DataBinder.Eval(Container.DataItem,”Guid”)) %>’>
<asp:Label id=”lblPubDate” runat=”server” CssClass=”Normal” Text='<%# FormatDate(DataBinder.Eval(Container.DataItem, “PubDate”)) %>’>
<PagerStyle CssClass=”NormalBold” Mode=”NumericPages”></PagerStyle>

<div id=”NoResults”>
<h3 class=”red” style=”text-align:center”>No Search Results Found</h3>
<script language =”Javascript”>
var search;
search = document.getElementsByName(“result”);

if (search.length == 0) {
else {

Be sure to add the Name=”result” snippet to the asp:Hyperlink in the code above. It’s easy to miss.

Save that and you should now have a spiffy new message displayed when no results are found. Use whatever CSS you want to style the message.

Multiple IE is a great little free program that lets you run multiple versions of Microsoft Internet Explorer along with version 7 of Internet Explorer.

The previous version I used to check IE6 used a Virtual PC and was a memory hog. This method worked perfectly and much faster and lets you test all the way back to Internet Explorer 3 (if you so desire).

In a somewhat surprising move, Marvel Comics has released a digital comics subscription service. For only $59.88 a year ($4.99 a month) or $9.99 monthly, you have immediate access to 2,700 comics. Marvel has 250 issues available for free. Rather than focus on current and popular books, the free selections offer a wide range of Marvel history. You’ll see plenty of early issues of the Avengers, Hulk, Thor and Iron Man, as well as samples of their younger books like Runaways and the Marvel Adventures series.

The paid selection of 2,700 titles looks even better. Again, the Avengers are featured heavily, but they also have hard to find titles like the Christopher Priest run on Black Panther, the 1950 Marvel Boy,  and Tales of Suspense. The initial selection is quite smart, with lots of complete mini-series runs, Manga versions of the Marvel heroes and books targeted toward younger readers (the Franklin Richard series, Power Pack) and teens (NYX, New Mutants, X-23, Jubilee). There’s even a nice selection of vintage titles (Marvel Team-Up, Man-Thing, Ghost Rider) for the older fans as well.


The online, Flash based reader was pleasantly surprising and fun to use. Not only can you choose from single and two-page options, the reader offers a Smart Panel feature that works quite well. Clicking the page/panel of the issue zooms in on half or third of the page and allows a good, close reading view. The issues, panels and pages all load quickly and seamlessly, which is a good thing. The reading experience is what hold many back from reading online or on the computer, but Marvel’s Flash reader makes the experience an  easy and pleasant one.

Using the Firefox User Agent Switcher, I impersonated an iPhone and the site continued to work well. If you’ve got an iPhone, browse the site and try to read one of the free comics and post a comment. Phone browsing and reading is the one unique feature that could cause the service to explode in popularity.

For this to be a success, Marvel needs to constantly add books. That 2,700 needs to double by the end of the year and continue at that pace. They’ve stated that only books older than 6 months will appear on the site. That’s not a bad decision, as it allows them to maintain regular sales and hopefully entice new readers with the digital version. I would release the new digital books every Wednesday, just like regular comics. Get the new readers used to reading new books on that day and you’ve got a better chance of getting them in the local shops to pick up the printed books.

Performance at the moment is spotty (at least on my end). Response times were slow and I experienced a few MySQL connection issues when browsing the free selection. It’s most likely due to the new launch and things should speed up and clear up in a week or so.

Marvel’s new digital comics subscription service is one I’ll definitely be keeping an eye on.

Just found a new Firefox Extension that’s quickly become a favorite. The View Source Chart extension works similar to a “View Source” command, but formats the page code in easy to read, color-coded blocks. It’s great for finding tags or code that are causing rendering problems or other issues. When debugging a site, you may not know exactly what you’re looking for, but with the nice hierarchy Source Chart provides, it’s easy to spot the item that’s out of place.

Computerworld published an article entitled “Top 10 Firefox Extensions to Avoid” and of course I had to read it. Some of their choices were odd, most I agreed with and one made me write this post.

ScribeFire (formerly Performancing)

This falls into the category of extensions that seem pointless. What we have here is a browser-based tool for writing blog posts. But don’t most blogs already have a browser-based editor that works just fine?

Perhaps there’s a blogging system out there that needs this kind of helper app, but we’re not familiar with it. Until we come upon such a beast, we’d rather skip the overhead of an extension and stick to our blogging software’s built-in editor.

Don’t get us wrong, ScribeFire is a nice piece of software. We just don’t see a need for it at this time. If you do happen to be using blogging software without a decent editor, ScribeFire would be a fine addition to your extension toolbox.

Yes, WordPress and other blog engines have build in editors, if they didn’t, they wouldn’t be very useful, now would they? I think they’re missing the point with ScribeFire. The nice think about this extension is I can post to my blog without having to go there. I can keep all my tabs open in Firefox, click back and forth between them, copy and paste, and all the while, the ScribeFire window stays in place below. It makes it terribly easy to reference what you’re writing about. If I used the WordPress editor, I would have to click back and forth between tabs or have multiple windows open to do the same thing.

Sorry ComputerWorld, but you missed the mark on that one.