<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1883221996743724698</id><updated>2011-07-07T14:01:30.395-07:00</updated><title type='text'>Official UNIINET Blog</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://uniinet.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1883221996743724698/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://uniinet.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>UNIINET Software, Inc.</name><uri>http://www.blogger.com/profile/10507796737535112092</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_ijhDwla3nKA/Sd6TvODa9_I/AAAAAAAAACk/cWRDOCrSawk/S220/UNIINET-Icon-80x80.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>3</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1883221996743724698.post-5694729762988290892</id><published>2009-07-24T12:45:00.001-07:00</published><updated>2009-08-13T16:10:30.667-07:00</updated><title type='text'>A Better Mousetrap Textbox</title><content type='html'>&lt;p&gt;
    The &lt;b&gt;System.Web.UI.WebControls.Textbox&lt;/b&gt;
    server control is the workhorse of the .Net web
    application world.  It reliably collects user
    input and dutifully passes it along to its
    destination.
&lt;/p&gt;
&lt;p&gt;
    Through the power of skins, CSS, and markup,
    it is possible to take this humble control
    and dress it up, but doing so usually takes
    development cycles away from perceptibly more
    important functional requirements of a project.
    Wouldn't it be nice to have a more visually appealing
    Textbox control that allowed you to simply drag-and-drop
    it from the Toolbox on to your form?  What if
    it could also have built-in validators and support
    for context-sensitive popup help, and all with
    little or no programming?
&lt;/p&gt;
&lt;p&gt;
    I developed &lt;b&gt;Uniinet.Net.Web.UI&lt;/b&gt; with the following requirements in mind:
&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Visually appealing and elegantly simple.&lt;/li&gt;
    &lt;li&gt;100% CSS driven.&lt;/li&gt;
    &lt;li&gt;Easy to use and deploy across multiple projects.  This ruled out the use of UserControls and required a custom server control solution.&lt;/li&gt;
    &lt;li&gt;Consistent appearance and behavior across major browsers including: IE, Firefox (Win/Mac), Opera (Win/Mac), Safari (Win/Mac), and Chrome.&lt;/li&gt;
    &lt;li&gt;Built-in context-sensitive popup help.&lt;/li&gt;
    &lt;li&gt;Support "FancyBox" and "RadControls" (available separately) for popup help.&lt;/li&gt;
    &lt;li&gt;Buit-in RequiredField and RegularExpression validators.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
    &lt;b&gt;Uniinet.Net.Web.UI&lt;/b&gt; supports the following common server controls:
&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Uniinet.Net.Web.UI.Textbox&lt;/li&gt;
    &lt;li&gt;Uniinet.Net.Web.UI.TextArea (multi-line Textbox)&lt;/li&gt;
    &lt;li&gt;Uniinet.Net.Web.UI.Dropdown&lt;/li&gt;
    &lt;li&gt;Uniinet.Net.Web.UI.SubmitLocker&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
    Let's take a look at the controls in action, and then
    I will show you how to use them in your own project.
    Below is a screenshot of a demo page which illustrates
    use of the &lt;b&gt;Uniinet.Net.Web.UI&lt;/b&gt; server controls.
    You may click the image or caption below it to see
    the live demo.  Be sure to click the page &lt;b&gt;Submit&lt;/b&gt;
    button so that you can see the built-in validators at work.
    To see the popup help feature, click on one of the
    validation error icons.
&lt;/p&gt;
&lt;p class="captionedImage"&gt;
    &lt;a href="http://blog.uniinet.com/codation/000003/default.aspx" target="_blank"&gt;
        &lt;img src="http://blog.uniinet.com/codation/000003/images/preview.jpg" width="466" height="326"/&gt;
    &lt;/a&gt;
    &lt;br/&gt;
    &lt;a href="http://blog.uniinet.com/codation/000003/default.aspx" target="_blank"&gt;
        &lt;i&gt;Live Demo&lt;/i&gt;
    &lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
    Now that you've seen what &lt;b&gt;Uniinet.Net.Web.UI&lt;/b&gt;
    can do, let's look at how to use it.
&lt;/p&gt;
&lt;h2 style="width: 100%; border-bottom: solid 1px silver; padding-bottom: 2px; padding-top: 30px; margin: 0px; font-size: 1.25em;"&gt;Adding Uniinet.Net.Web.UI To Your Visual Studio Toolbox&lt;/h2&gt;
&lt;p&gt;
    First, download the Visual Studio 2008 demo
    project here: &lt;a href="http://blog.uniinet.com/codation/000003/Resources/Uniinet.Net.Web.UI.Demo.zip"&gt;Uniinet.Net.Web.UI.Demo.zip&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
    After you've downloaded the project, you need to
    extract it.  Once extracted, launch Visual Studio
    2008 and choose &lt;b&gt;File | Open Web Site...&lt;/b&gt; and
    browse to the directory where you extracted the
    &lt;b&gt;Uniinet.Net.Web.UI.Demo&lt;/b&gt; project to.
    Click &lt;b&gt;Open&lt;/b&gt; to open the specified website,
    and now you're ready to go!  Run the project,
    experiment with it, and refer to the sources for
    example usage.
&lt;/p&gt;
&lt;p&gt;
    To register the &lt;b&gt;Uniinet.Net.Web.UI&lt;/b&gt; component
    in the Toolbox, right-click in the &lt;b&gt;General&lt;/b&gt;
    area of the Toolbox and select &lt;b&gt;Choose Items...&lt;/b&gt;
    from the popup menu.  The &lt;b&gt;Choose Toolbox Items&lt;/b&gt;
    dialog will appear.
&lt;/p&gt;
&lt;p class="captionedImage"&gt;
    &lt;img src="http://blog.uniinet.com/codation/000003/images/ChooseToolBoxItems-Before.jpg" width="400" height="276"/&gt;
    &lt;br/&gt;
    &lt;i&gt;
        &lt;b&gt;Choose Toolbox Items&lt;/b&gt; dialog - Before
    &lt;/i&gt;
&lt;/p&gt;
&lt;p&gt;
    Click the &lt;b&gt;Browse...&lt;/b&gt; button, select the 
    &lt;b&gt;Uniinet.Net.Web.UI.dll&lt;/b&gt; assembly in the &lt;b&gt;Bin&lt;/b&gt;
    directory where you previously extracted the
    project to, and click &lt;b&gt;Open&lt;/b&gt;.
&lt;/p&gt;
&lt;p class="captionedImage"&gt;
    &lt;img src="http://blog.uniinet.com/codation/000003/images/OpenDialog.jpg" width="400" height="297"/&gt;
    &lt;br/&gt;
    &lt;i&gt;
        &lt;b&gt;Open&lt;/b&gt; dialog
    &lt;/i&gt;
&lt;/p&gt;
&lt;p class="captionedImage"&gt;
    &lt;img src="http://blog.uniinet.com/codation/000003/images/ChooseToolBoxItems-After.jpg" width="400" height="276"/&gt;
    &lt;br/&gt;
    &lt;i&gt;
        &lt;b&gt;Choose Toolbox Items&lt;/b&gt; dialog - After
    &lt;/i&gt;
&lt;/p&gt;
&lt;p&gt;
    Now the &lt;b&gt;Uniinet.Net.Web.UI&lt;/b&gt; server controls
    will be registered in the Toolbox, allowing you
    to easily drag-and-drop them into your own projects.
&lt;/p&gt;
&lt;p class="captionedImage"&gt;
    &lt;img src="http://blog.uniinet.com/codation/000003/images/Toolbox-After.jpg"/&gt;
    &lt;br/&gt;
    &lt;i&gt;
        &lt;b&gt;Uniinet.Net.Web.UI&lt;/b&gt; added to Toolbox
    &lt;/i&gt;
&lt;/p&gt;
&lt;h2 style="width: 100%; border-bottom: solid 1px silver; padding-bottom: 2px; margin: 0px; font-size: 1.25em;"&gt;Quick Start&lt;/h2&gt;
&lt;p&gt;
    Begin by creating a Visual Studio .Net web
    project and creating a new page.
&lt;/p&gt;
&lt;p&gt;
    Next, let's take care of a few dependencies.
    &lt;b&gt;Uniinet.Net.Web.UI&lt;/b&gt; relies on the amazing
    &lt;a href="http://fancybox.net" target="_blank"&gt;FancyBox&lt;/a&gt;
    for popup help support.  FancyBox requires the
    following stylesheet and Javascript files which
    can be found where you previously extracted
    &lt;b&gt;Uniinet.Net.Web.UI.Demo.zip&lt;/b&gt; to:
&lt;/p&gt;
&lt;p&gt;
    Stylesheets:
&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;CSS/Fancy.css&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
    Javascript Files:
&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Scripts/jquery-1.2.3.pack.js&lt;/li&gt;
    &lt;li&gt;Scripts/jquery-1.2.3.pack.js&lt;/li&gt;
    &lt;li&gt;Scripts/jquery-1.2.3.pack.js&lt;/li&gt;
    &lt;li&gt;Scripts/jquery.fancybox-1.0.0.js&lt;/li&gt;
    &lt;li&gt;Scripts/jquery.metadata.js&lt;/li&gt;
    &lt;li&gt;Scripts/jquery.pngFix.pack.js&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
    To link in these dependencies, simply
    copy-and-paste the following code section
    into the &lt;b&gt;HEAD&lt;/b&gt; of your webform or
    masterpage (if applicable).
&lt;/p&gt;
&lt;div class="scrollableContent"&gt;
    &lt;pre style="width: 1000px;"&gt;
&amp;lt;!--***IMPORTANT - THIS IS REQUIRED BY Uniinet.Net.Web.UI***--&amp;gt;
&amp;lt;!--***FancyBox credited to http://www.fancybox.net***--&amp;gt;
&amp;lt;script src=&amp;quot;Scripts/jquery-1.2.3.pack.js&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;script src=&amp;quot;Scripts/jquery.fancybox-1.0.0.js&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;script src=&amp;quot;Scripts/jquery.pngFix.pack.js&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;script src=&amp;quot;Scripts/jquery.metadata.js&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;link href=&amp;quot;CSS/Fancy.css&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; media=&amp;quot;screen&amp;quot; /&amp;gt;
    &lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;
    Now, let's put a &lt;b&gt;Uniinet.Net.Web.UI&lt;/b&gt;
    control on our page.  If you already registered
    &lt;b&gt;Uniinet.Net.Web.UI&lt;/b&gt; in the Toolbox
    (see instructions above), simply drag-and-drop
    a Textbox control on your form.  Visual Studio
    will automatically generate the necessary directives
    and stubs out a basic instance of the
    &lt;b&gt;Uniinet.Net.Web.UI.Textbox&lt;/b&gt; control.
    Don't forget to update the &lt;b&gt;script&lt;/b&gt; and
    &lt;b&gt;CSS&lt;/b&gt; paths if they differ from those shown above.
&lt;/p&gt;
&lt;div class="scrollableContent"&gt;
    &lt;pre style="width: 1000px;"&gt;
&amp;lt;%@ Page Language=&amp;quot;C#&amp;quot; AutoEventWireup=&amp;quot;true&amp;quot; CodeFile=&amp;quot;Default.aspx.cs&amp;quot; Inherits=&amp;quot;_Default&amp;quot; %&amp;gt;&lt;b&gt;
&amp;lt;%@ Register Assembly=&amp;quot;Uniinet.Net.Web.UI&amp;quot; Namespace=&amp;quot;Uniinet.Net.Web.UI&amp;quot; TagPrefix=&amp;quot;uniinet&amp;quot; %&amp;gt;&lt;/b&gt;

&amp;lt;!DOCTYPE html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.0 Transitional//EN&amp;quot; &amp;quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&amp;quot;&amp;gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;&amp;gt;
    &amp;lt;head runat=&amp;quot;server&amp;quot;&amp;gt;
        &amp;lt;title&amp;gt;Test Page&amp;lt;/title&amp;gt;&lt;b&gt;

        &amp;lt;!--***IMPORTANT - THIS IS REQUIRED BY Uniinet.Net.Web.UI***--&amp;gt;
        &amp;lt;!--***FancyBox credited to http://www.fancybox.net***--&amp;gt;
        &amp;lt;script src=&amp;quot;Scripts/jquery-1.2.3.pack.js&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;
        &amp;lt;script src=&amp;quot;Scripts/jquery.fancybox-1.0.0.js&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;
        &amp;lt;script src=&amp;quot;Scripts/jquery.pngFix.pack.js&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;
        &amp;lt;script src=&amp;quot;Scripts/jquery.metadata.js&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;
        &amp;lt;link href=&amp;quot;CSS/Fancy.css&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; media=&amp;quot;screen&amp;quot; /&amp;gt;&lt;/b&gt;
    &amp;lt;/head&amp;gt;
    &amp;lt;body&amp;gt;
        &amp;lt;form id=&amp;quot;form1&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;
            &amp;lt;div&amp;gt;
                &lt;b&gt;&amp;lt;uniinet:Textbox ID=&amp;quot;Textbox1&amp;quot; RunAt=&amp;quot;server&amp;quot; Label=&amp;quot;Label1&amp;quot; Width=&amp;quot;200&amp;quot; /&amp;gt;&lt;/b&gt;
            &amp;lt;/div&amp;gt;
        &amp;lt;/form&amp;gt;
    &amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
    &lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;
    There is one more step to complete before we run
    the project.  The &lt;b&gt;Uniinet.Net.Web.UI&lt;/b&gt;
    controls need their images and CSS files in
    order to render properly.  The easiest way to
    provide this is to add a Themes folder to your
    application and copy the
    &lt;b&gt;App_Themes\Default\Uniinet.Net.Web.UI&lt;/b&gt;
    folder in the &lt;b&gt;Uniinet.Net.Web.UI.Demo&lt;/b&gt;
    project to your theme folder.  If your theme is
    called "Default" like it is in &lt;b&gt;Uniinet.Net.Web.UI.Demo&lt;/b&gt;,
    then copy it to "Default".  Otherwise, copy
    it to the theme of your choosing.
&lt;/p&gt;
&lt;p&gt;
    Now, to wire the theme files up to your page,
    you need to add the &lt;b&gt;Theme&lt;/b&gt; attribute to
    its &lt;b&gt;@ Page&lt;/b&gt; directive as shown below.
&lt;/p&gt;
&lt;div class="scrollableContent"&gt;
    &lt;pre style="width: 1000px;"&gt;
&lt;b&gt;&amp;lt;%@ Page Language=&amp;quot;C#&amp;quot; AutoEventWireup=&amp;quot;true&amp;quot; Theme=&amp;quot;Default&amp;quot; CodeFile=&amp;quot;Default.aspx.cs&amp;quot; Inherits=&amp;quot;_Default&amp;quot; %&amp;gt;&lt;/b&gt;
    &lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;
    That's all there is to it!  Run your project
    and you should see a &lt;b&gt;Uniinet.Net.Web.UI.Textbox&lt;/b&gt;
    control on your page as shown below:
&lt;/p&gt;
&lt;p class="captionedImage"&gt;
    &lt;img src="http://blog.uniinet.com/codation/000003/images/InAction.jpg" width="400" height="285"/&gt;
    &lt;br/&gt;
    &lt;i&gt;Screenshot&lt;/i&gt;
&lt;/p&gt;
&lt;p&gt;
    To fully leverage the capabilities of
    &lt;b&gt;Uniinet.Net.Web.UI&lt;/b&gt;, refer to the
    &lt;a href="http://blog.uniinet.com/codation/000003/resources/Uniinet.Net.Web.UI.Doc.htm" target="_blank"&gt;reference&lt;/a&gt; below:
&lt;/p&gt;
&lt;div class="scrollableContent" style="height: 600px;"&gt;
    &lt;table class="docTable" cellspacing="0" cellpadding="5"&gt;
        &lt;tr&gt;
            &lt;th style="background-color: black; color: white;"&gt;
                &lt;b&gt;Property&lt;/b&gt;
            &lt;/th&gt;
            &lt;th style="background-color: black; color: white;"&gt;
                &lt;b&gt;Description&lt;/b&gt;
            &lt;/th&gt;
            &lt;th style="background-color: black; color: white;"&gt;
                &lt;b&gt;Usage&lt;/b&gt;
            &lt;/th&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;
                &lt;b&gt;InitialValue&lt;/b&gt;&lt;br/&gt;
                (Textbox/TextArea/Dropdown)
            &lt;/td&gt;
            &lt;td&gt;
                Gets/sets the starting value of a Textbox/TextArea
                or specifies the initially selected index of a
                Dropdown.  This property works in conjuction
                with the built-in RequiredField validator by
                allowing a text string other than "empty string"
                to be treated as a non-value.
            &lt;/td&gt;
            &lt;td&gt;
                &lt;p&gt;
                    If you want a Textbox or TextArea control to
                    have a default value of "Enter a name..."
                    and still have the built-in RequiredField
                    validator to force the user to enter a value,
                    then set the InitialValue property to "Enter
                    a name...".
                &lt;/p&gt;
                &lt;p&gt;
                    For Dropdown list controls, you can set the
                    InitialValue to a particular item index,
                    and the RequiredField validator will force
                    the user to select a different value.
                &lt;/p&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;
                &lt;b&gt;Text&lt;/b&gt;&lt;br/&gt;
                (Textbox/TextArea)
            &lt;/td&gt;
            &lt;td&gt;
                Gets/sets the text value of a Textbox/TextArea
                control.
            &lt;/td&gt;
            &lt;td&gt;
                //Set a Textbox value&lt;br/&gt;
                myTextbox.Text = "This is some sample text.";
            &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;
                &lt;b&gt;MaxLength&lt;/b&gt;&lt;br/&gt;
                (Textbox/TextArea)
            &lt;/td&gt;
            &lt;td&gt;
                Gets/sets the maximum length value that can be
                handled by the Textbox/TextArea.
            &lt;/td&gt;
            &lt;td&gt;
                //Set maximum allowed length to 50 characters.&lt;br/&gt;
                myTextbox.MaxLength = 50;
            &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;
                &lt;b&gt;Control&lt;/b&gt;&lt;br/&gt;
                (Textbox/TextArea/Dropdown)
            &lt;/td&gt;
            &lt;td&gt;
                &lt;p&gt;
                    Gets the constituent System.Web.UI.WebControls.Textbox
                    control for Uniinet.Net.Web.UI.Textbox and
                    Uniinet.Net.Web.UI.TextArea controls.
                &lt;/p&gt;
                &lt;p&gt;
                    Gets the constituent System.Web.UI.WebControls.DropDownList
                    for Uniinet.Net.Web.UI.Dropdown.
                &lt;/p&gt;
            &lt;/td&gt;
            &lt;td&gt;
                &lt;p&gt;
                    //Get constituent Textbox&lt;br/&gt;
                    System.Web.UI.WebControls.Textbox myConstituentTextbox = myTextbox.Control;
                &lt;/p&gt;
                &lt;p&gt;
                    //Set a property&lt;br/&gt;
                    myConstituentTextbox.Text = "Some text...";
                &lt;/p&gt;
                &lt;p&gt;
                    //Get constituent DropDownList&lt;br/&gt;
                    System.Web.UI.WebControls.DropDownList myConstituentDropDownList = myDropdown.Control;
                &lt;/p&gt;
                &lt;p&gt;
                    //Set a property&lt;br/&gt;
                    myConstituentTextbox.SelectedIndex = 1;
                &lt;/p&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;
                &lt;b&gt;Height&lt;/b&gt;&lt;br/&gt;
                (TextArea)
            &lt;/td&gt;
            &lt;td&gt;
                Gets/sets the control height.
            &lt;/td&gt;
            &lt;td&gt;
                //Set TextArea height&lt;br/&gt;
                myTextArea.Height = 100;
            &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;
                &lt;b&gt;Width&lt;/b&gt;&lt;br/&gt;
                (Textbox/TextArea/Dropdown)
            &lt;/td&gt;
            &lt;td&gt;
                Gets/sets the control width.
            &lt;/td&gt;
            &lt;td&gt;
                //Set TextArea width&lt;br/&gt;
                myTextArea.Width = 100;
            &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;
                &lt;b&gt;Label&lt;/b&gt;&lt;br/&gt;
                (Textbox/TextArea/Dropdown)
            &lt;/td&gt;
            &lt;td&gt;
                Gets/sets the label text.
            &lt;/td&gt;
            &lt;td&gt;
                //Set the label text&lt;br/&gt;
                myDropdown.Label = "Colors";
            &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;
                &lt;b&gt;TabIndex&lt;/b&gt;&lt;br/&gt;
                (Textbox/TextArea/Dropdown)
            &lt;/td&gt;
            &lt;td&gt;
                Gets/sets the tab order for the control.
            &lt;/td&gt;
            &lt;td&gt;
                //Set the tab index&lt;br/&gt;
                myTextArea.TabIndex = 2;
            &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;
                &lt;b&gt;ValidatorDisplayType&lt;/b&gt;&lt;br/&gt;
                (Textbox/TextArea/Dropdown)
            &lt;/td&gt;
            &lt;td&gt;
                &lt;p&gt;
                    Gets/sets the validator display type.
                &lt;/p&gt;
                &lt;ul&gt;
                    &lt;li&gt;None - disable built-in validators.&lt;/li&gt;
                    &lt;li&gt;Dynamic - use dynamic display.&lt;/li&gt;
                    &lt;li&gt;Static - use static display.&lt;/li&gt;
                &lt;/ul&gt;
            &lt;/td&gt;
            &lt;td&gt;
                &lt;p&gt;
                    //To enable validator, choose Dynamic or Static&lt;br/&gt;
                    myTextbox.ValidatorDisplayType = System.Web.UI.WebControls.ValidatorDisplay.Dynamic;
                &lt;/p&gt;
                &lt;p&gt;
                    //To disable validator, choose None&lt;br/&gt;
                    myTextbox.ValidatorDisplayType = System.Web.UI.WebControls.ValidatorDisplay.None;
                &lt;/p&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;
                &lt;b&gt;RequiredFieldValidatorErrorMessage&lt;/b&gt;&lt;br/&gt;
                (Textbox/TextArea/Dropdown)
            &lt;/td&gt;
            &lt;td&gt;
                Gets/set the error message that should be displayed by the
                built-in required field valididator.  The required field
                validator is disabled unless this property is set.  The
                required field validator is disabled if this property is an empty string.
            &lt;/td&gt;
            &lt;td&gt;
                //Set error text&lt;br/&gt;
                myTextbox.RequiredFieldValidatorErrorMessage = "This is a required field.";
            &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;
                &lt;b&gt;RegularExpressionValidatorValidationExpression&lt;/b&gt;&lt;br/&gt;
                (Textbox/TextArea/Dropdown)
            &lt;/td&gt;
            &lt;td&gt;
                Gets/sets the regular expression to be used by the
                built-in regular expression validator.  The regular
                expression validator is only enabled if this and the
                RegularExpressionValidatorError Message property are set.
            &lt;/td&gt;
            &lt;td&gt;
                //Only allow 3-digits&lt;br/&gt;
                myTextbox.RegularExpressionValidatorValidationExpression = "\d{3}";
            &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;
                &lt;b&gt;RegularExpressionValidatorErrorMessage&lt;/b&gt;&lt;br/&gt;
                (Textbox/TextArea/Dropdown)
            &lt;/td&gt;
            &lt;td&gt;
                Gets/sets the error message to be displayed by
                the built-in regular expression validator.
                The regular expression validator is only enabled
                if this and the RegularExpressionValidatorValidationExpression
                property are set.
            &lt;/td&gt;
            &lt;td&gt;
                //Set error text&lt;br/&gt;
                myTextbox.RegularExpressionValidatorErrorMessage = "Please enter a 3-digit value.";
            &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;
                &lt;b&gt;PopupHelpID&lt;/b&gt;&lt;br/&gt;
                (Textbox/TextArea/Dropdown)
            &lt;/td&gt;
            &lt;td&gt;
                Gets/sets the popup help ID which is passed in
                the querystring when the popup help page is
                loaded, which is useful for displaying
                context-sensitive help.
            &lt;/td&gt;
            &lt;td&gt;
                //Set popup help ID
                myDropdown.PopupHelpID = "10";
            &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;
                &lt;b&gt;PopupHelpPage&lt;/b&gt;&lt;br/&gt;
                (Textbox/TextArea/Dropdown)
            &lt;/td&gt;
            &lt;td&gt;
                Gets/sets the relative or absolute page to display.
            &lt;/td&gt;
            &lt;td&gt;
                //Set popup help page&lt;br/&gt;
                myTextArea.PopupHelpPage = "../Help/AccountManagement/CreateAccount.aspx";
            &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;
                &lt;b&gt;PopupHelpImage&lt;/b&gt;&lt;br/&gt;
                (Textbox/TextArea/Dropdown)
            &lt;/td&gt;
            &lt;td&gt;
                Gets/sets the image to display for popup help.
            &lt;/td&gt;
            &lt;td&gt;
                //Set popup help image&lt;br/&gt;
                myTextArea.PopupHelpImage = "../Images/help.gif";
            &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;
                &lt;b&gt;PopupHelpHeight&lt;/b&gt;&lt;br/&gt;
                (Textbox/TextArea/Dropdown)
            &lt;/td&gt;
            &lt;td&gt;
                Gets/sets the height of the popup help window.
            &lt;/td&gt;
            &lt;td&gt;
                //Set popup help window height&lt;br/&gt;
                myDropdown.PopupHelpHeight = 600;
            &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;
                &lt;b&gt;PopupHelpWidth&lt;/b&gt;&lt;br/&gt;
                (Textbox/TextArea/Dropdown)
            &lt;/td&gt;
            &lt;td&gt;
                Gets/sets the width of the popup help window.
            &lt;/td&gt;
            &lt;td&gt;
                //Set popup help window width&lt;br/&gt;
                myDropdown.PopupHelpWidth = 800;
            &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;
                &lt;b&gt;PopupHelpMode&lt;/b&gt;&lt;br/&gt;
                (Textbox/TextArea/Dropdown)
            &lt;/td&gt;
            &lt;td&gt;
                &lt;p&gt;
                    Gets/sets the popup help mode.
                &lt;/p&gt;
                &lt;ul&gt;
                    &lt;li&gt;None - disable popup help.&lt;/li&gt;
                    &lt;li&gt;FancyBox - use &lt;a href="http://www.fancybox.net" target="_blank"&gt;FancyBox&lt;/a&gt; windows.&lt;/li&gt;
                    &lt;li&gt;RadControls - use RadControls windows (not supported in this version).&lt;/li&gt;
                &lt;/ul&gt;
            &lt;/td&gt;
            &lt;td&gt;
                //Use FancyBox for popup help
                myTextbox.PopupHelpMode = Uniinet.Net.Web.UI.PopupHelpMode.FancyBox;
            &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/table&gt;
&lt;/div&gt;
&lt;p&gt;
I hope you have found &lt;b&gt;Uniinet.Net.Web.UI&lt;/b&gt; useful.  Please provide comments/feedback, I'll try to work in any changes/improvements in the next release.
&lt;/p&gt;
&lt;p&gt;
    Happy coding!
&lt;/p&gt;
&lt;p&gt;
    [END_OF_LINE]
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1883221996743724698-5694729762988290892?l=uniinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://uniinet.blogspot.com/feeds/5694729762988290892/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://uniinet.blogspot.com/2009/07/better-textbox.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1883221996743724698/posts/default/5694729762988290892'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1883221996743724698/posts/default/5694729762988290892'/><link rel='alternate' type='text/html' href='http://uniinet.blogspot.com/2009/07/better-textbox.html' title='A Better &lt;del&gt;Mousetrap&lt;/del&gt; Textbox'/><author><name>UNIINET Software, Inc.</name><uri>http://www.blogger.com/profile/10507796737535112092</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_ijhDwla3nKA/Sd6TvODa9_I/AAAAAAAAACk/cWRDOCrSawk/S220/UNIINET-Icon-80x80.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1883221996743724698.post-5536241177596248841</id><published>2009-07-03T18:20:00.001-07:00</published><updated>2009-08-05T17:43:17.883-07:00</updated><title type='text'>Prevent Duplicate Form Submissions Using .Net Server Control</title><content type='html'>&lt;p&gt;
    Are trigger-happy users causing you a
    headache because they repeatedly click
    the form &lt;b&gt;Submit&lt;/b&gt; button, causing
    your application to create duplicate
    records, duplicate account registrations,
    or even worse, duplicate credit card
    transactions?  Wouldn't it be nice if
    there were a clean and simple way to
    prevent these duplicate POSTs from occurring,
    without having to do any messy client-side
    javascript coding?
&lt;/p&gt;
&lt;p&gt;
    Enter &lt;b&gt;SubmitLocker&lt;/b&gt;. If you can drop
    a .Net server control on a Web Form in Visual
    Studio .Net, you can use &lt;b&gt;SubmitLocker&lt;/b&gt;
    ...it's as easy as that!
&lt;/p&gt;
&lt;p&gt;
    Let's begin by taking a look at &lt;b&gt;SubmitLocker&lt;/b&gt;
    in action; doing so will give us a point of
    reference for the rest of this discussion.
    Below is a screenshot of a demo page which illustrates
    use of the &lt;b&gt;SubmitLocker&lt;/b&gt; server control.
    You may click the image or caption below to see the live example.
&lt;/p&gt;
&lt;p class="captionedImage"&gt;
    &lt;a href="http://blog.uniinet.com/codation/000002/default.aspx" target="_blank"&gt;
        &lt;img src="http://blog.uniinet.com/codation/000002/images/preview.jpg" width="466" height="326"/&gt;
    &lt;/a&gt;
    &lt;br/&gt;
    &lt;a href="http://blog.uniinet.com/codation/000002/default.aspx" target="_blank"&gt;
        &lt;i&gt;Live Demo&lt;/i&gt;
    &lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
    Once the &lt;b&gt;SubmitLocker&lt;/b&gt; demo is loaded by
    clicking the link above, all you need to do is
    click the &lt;b&gt;Submit&lt;/b&gt; button.  When you do so,
    you should note two things:
&lt;/p&gt;
&lt;ol&gt;
    &lt;li&gt;
        The &lt;b&gt;Submit&lt;/b&gt; button immediately becomes disabled.
    &lt;/li&gt;
    &lt;li&gt;
        The &lt;b&gt;Submit&lt;/b&gt; button caption briefly changes from 
        &lt;b&gt;Submit&lt;/b&gt;, to &lt;b&gt;Please wait...&lt;/b&gt;, and then 
        back to &lt;b&gt;Submit&lt;/b&gt;.
    &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
    Try as hard as you like, it will be impossible to 
    click the &lt;b&gt;Submit&lt;/b&gt; button more than once 
    (as long as javascript is enabled).
&lt;/p&gt;
&lt;p&gt;
    By contrast, let's see what would happen if 
    &lt;b&gt;SubmitLocker&lt;/b&gt; were not used on this page.  
    To do this, simply uncheck the &lt;b&gt;Enable Locker&lt;/b&gt; 
    checkbox - this will disable its functionality.  
    Now, click the &lt;b&gt;Submit&lt;/b&gt; button - after a brief 
    delay it will disable.  It is disabling because 
    the button's &lt;b&gt;Click&lt;/b&gt; event sets the 
    &lt;b&gt;Enabled&lt;/b&gt; property to &lt;b&gt;false&lt;/b&gt;.  
    If the button disabled without &lt;b&gt;SubmitLocker&lt;/b&gt;, 
    then why do we need it?
&lt;/p&gt;
&lt;p&gt;
    The need for &lt;b&gt;SubmitLocker&lt;/b&gt; becomes apparent 
    when you rapidly click the &lt;b&gt;Submit&lt;/b&gt; 
    button multiple times in succession.  
    Notice that with &lt;b&gt;SubmitLocker&lt;/b&gt; 
    disabled, you can click it dozens of times 
    before it becomes disabled.  This is happening 
    because it takes time for the server-side code 
    in the &lt;b&gt;Click&lt;/b&gt; event handler to update the 
    client, disabling the button.  During this time, 
    several more postbacks have occurred, and 
    undesirable consequences may result.
&lt;/p&gt;
&lt;p&gt;
    The &lt;b&gt;SubmitLocker&lt;/b&gt; server control has a 
    few other properties illustrated in the demo.
&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;
        &lt;b&gt;NotifyOnLock (Boolean)&lt;/b&gt; 
        - Displays a javascript alert when lock occurs.
    &lt;/li&gt;
    &lt;li&gt;
        &lt;b&gt;LockText (String)&lt;/b&gt; 
        - The text to display as the target 
        button's caption when lock occurs.
    &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
    You may play with the settings on the demo to see 
    how they work.  Try checking the &lt;b&gt;NotifyOnLock&lt;/b&gt; 
    option, entering &lt;b&gt;Busy&lt;/b&gt; as the &lt;b&gt;LockText&lt;/b&gt; 
    text, and then clicking &lt;b&gt;Submit&lt;/b&gt;.
&lt;/p&gt;
&lt;h2 style="width: 100%; border-bottom: solid 1px silver; padding-bottom: 2px; padding-top: 30px; margin: 0px; font-size: 1.25em;"&gt;Setup Your Own Local Demo Project&lt;/h2&gt;
&lt;p&gt;
    The following instructions will help you set 
    up a local Visual Studio 2008 version of the 
    &lt;b&gt;SubmitLocker&lt;/b&gt; demo (should work with 
    VS 2005 as well).
&lt;/p&gt;
&lt;p&gt;
    First, download the Visual Studio 2008 project here: 
    &lt;a href="http://blog.uniinet.com/codation/000002/Resources/Uniinet.Net.Web.SubmitLocker.Demo.zip"&gt;Uniinet.Net.Web.SubmitLocker.Demo.zip&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
    After you've downloaded the project, you 
    need to extract it.  Once extracted, launch 
    Visual Studio 2008 and choose 
    &lt;b&gt;File | Open Web Site...&lt;/b&gt; and browse to 
    the directory where you extracted the 
    &lt;b&gt;SubmitLocker&lt;/b&gt; project to.  Click 
    &lt;b&gt;Open&lt;/b&gt; to open the specified website, 
    and now you're ready to go!  Run the project, 
    experiment with it, and refer to the sources 
    for example usage.
&lt;/p&gt;
&lt;p&gt;
    To register the &lt;b&gt;SubmitLocker&lt;/b&gt; component 
    in the Toolbox, right-click in the 
    &lt;b&gt;General&lt;/b&gt; area of the Toolbox and 
    select &lt;b&gt;Choose Items...&lt;/b&gt; from the 
    popup menu.  The &lt;b&gt;Choose Toolbox Items&lt;/b&gt; 
    will appear.
&lt;/p&gt;
&lt;p class="captionedImage"&gt;
    &lt;img src="http://blog.uniinet.com/codation/000002/images/ChooseToolBoxItems-Before.jpg" width="400" height="276"/&gt;
    &lt;br/&gt;
    &lt;i&gt;
        &lt;b&gt;Choose Toolbox Items&lt;/b&gt; dialog - Before
    &lt;/i&gt;
&lt;/p&gt;
&lt;p&gt;
    Click the &lt;b&gt;Browse...&lt;/b&gt; button, select the 
    &lt;b&gt;Uniinet.Net.Web.UI.dll&lt;/b&gt; in the &lt;b&gt;Bin&lt;/b&gt; 
    directory where you previously extracted the 
    project to, and click &lt;b&gt;Open&lt;/b&gt;.
&lt;/p&gt;
&lt;p class="captionedImage"&gt;
    &lt;img src="http://blog.uniinet.com/codation/000002/images/OpenDialog.jpg" width="400" height="297"/&gt;&lt;br/&gt;
    &lt;i&gt;&lt;b&gt;Open&lt;/b&gt; dialog&lt;/i&gt;
&lt;/p&gt;
&lt;p class="captionedImage"&gt;
    &lt;img src="http://blog.uniinet.com/codation/000002/images/ChooseToolBoxItems-After.jpg" width="400" height="276"/&gt;&lt;br/&gt;
    &lt;i&gt;&lt;b&gt;Choose Toolbox Items&lt;/b&gt; dialog - After&lt;/i&gt;
&lt;/p&gt;
&lt;p&gt;
    Now the &lt;b&gt;SubmitLocker&lt;/b&gt; server control 
    will be registered in the Toolbox, allowing 
    you to easily drag-and-drop it into your own 
    projects.
&lt;/p&gt;
&lt;p class="captionedImage"&gt;
    &lt;img src="http://blog.uniinet.com/codation/000002/images/Toolbox-After.jpg"/&gt;&lt;br/&gt;
    &lt;i&gt;&lt;b&gt;SubmitLocker&lt;/b&gt; added to Toolbox&lt;/i&gt;
&lt;/p&gt;
&lt;p&gt;
    I've used &lt;b&gt;SubmitLocker&lt;/b&gt; on many projects 
    and have found it quite handy.  Remember, it 
    relies on client-side scripting to work, so you 
    should not rely on it to the exclusion of 
    server-side measures.
&lt;/p&gt;
&lt;p&gt;
    Happy coding!
&lt;/p&gt;
&lt;p&gt;
    [END_OF_LINE]
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1883221996743724698-5536241177596248841?l=uniinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://uniinet.blogspot.com/feeds/5536241177596248841/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://uniinet.blogspot.com/2009/07/prevent-duplicate-form-submissions.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1883221996743724698/posts/default/5536241177596248841'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1883221996743724698/posts/default/5536241177596248841'/><link rel='alternate' type='text/html' href='http://uniinet.blogspot.com/2009/07/prevent-duplicate-form-submissions.html' title='Prevent Duplicate Form Submissions Using .Net Server Control'/><author><name>UNIINET Software, Inc.</name><uri>http://www.blogger.com/profile/10507796737535112092</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_ijhDwla3nKA/Sd6TvODa9_I/AAAAAAAAACk/cWRDOCrSawk/S220/UNIINET-Icon-80x80.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1883221996743724698.post-7822070122035143668</id><published>2009-07-01T15:55:00.003-07:00</published><updated>2009-08-05T17:44:25.759-07:00</updated><title type='text'>C# Class Template - Coding with Style</title><content type='html'>&lt;p&gt;
    Quality in programming is usually measured in 
    terms of the end, not the means. That is, as 
    long as an application, component, or services 
    meets its functional requirements, the code is 
    deemed "good enough". But what about best practices 
    and coding style? Why can't code meet its 
    expectations cosmetically, as well as functionally?
&lt;/p&gt;
&lt;p&gt;
    The following template provides a simple yet 
    effective structural layout for a C# class. 
    It contains place holders for most of the 
    common elements of a C# class and should 
    greatly improve the readability and maintainability 
    of your code. And last, but not least, there 
    will be perception of quality and craftsmanship 
    to your code that goes beyond bits and bytes, 
    inspiring confidence in both the developer and 
    the developed.
&lt;/p&gt;
&lt;p class="captionedImage"&gt;
    &lt;img src="http://blog.uniinet.com/codation/000001/images/CSharpClassTemplate-Large.jpg" width="456" height="513"/&gt;
    &lt;br/&gt;
    &lt;i&gt;Screenshot of C# Class Template&lt;/i&gt;
&lt;/p&gt;
&lt;p&gt;
    Following is an enumeration of the code sections 
    contained in the template:
&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Class Variables&lt;/li&gt;
    &lt;li&gt;Constants&lt;/li&gt;
    &lt;li&gt;Constructors&lt;/li&gt;
    &lt;li&gt;Delegates&lt;/li&gt;
    &lt;li&gt;Destructors&lt;/li&gt;
    &lt;li&gt;Enumerations&lt;/li&gt;
    &lt;li&gt;Events&lt;/li&gt;
    &lt;li&gt;Fields&lt;/li&gt;
    &lt;li&gt;Indexers&lt;/li&gt;
    &lt;li&gt;Methods&lt;/li&gt;
    &lt;li&gt;Operators&lt;/li&gt;
    &lt;li&gt;Property Accessors&lt;/li&gt;
    &lt;li&gt;Private Structures&lt;/li&gt;
    &lt;li&gt;Private Classes&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
    Use the link below to download the C# class template. 
    If you have a comment or suggestion about code 
    templates that you would like to share, please reply 
    to this post.
&lt;/p&gt;
&lt;p&gt;
    Download: &lt;a href="http://blog.uniinet.com/codation/000001/CSharpClassTemplate.txt" target="_blank"&gt;CSharpCodeTemplate.txt&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
    Happy coding!
&lt;/p&gt;
&lt;p&gt;
    [END_OF_LINE]
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1883221996743724698-7822070122035143668?l=uniinet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://uniinet.blogspot.com/feeds/7822070122035143668/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://uniinet.blogspot.com/2009/07/c-class-template-coding-with-style_1978.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1883221996743724698/posts/default/7822070122035143668'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1883221996743724698/posts/default/7822070122035143668'/><link rel='alternate' type='text/html' href='http://uniinet.blogspot.com/2009/07/c-class-template-coding-with-style_1978.html' title='C# Class Template - Coding with Style'/><author><name>UNIINET Software, Inc.</name><uri>http://www.blogger.com/profile/10507796737535112092</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_ijhDwla3nKA/Sd6TvODa9_I/AAAAAAAAACk/cWRDOCrSawk/S220/UNIINET-Icon-80x80.jpg'/></author><thr:total>0</thr:total></entry></feed>
