<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/rss2full.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/itemcontent.css" type="text/css" media="screen"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-8814077298454806308</atom:id><lastBuildDate>Tue, 11 Nov 2008 13:00:04 +0000</lastBuildDate><title>Codeapedia</title><description /><link>http://www.codeapedia.com/</link><managingEditor>noreply@blogger.com (CodeApedia)</managingEditor><generator>Blogger</generator><openSearch:totalResults>27</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/Codeapedia" type="application/rss+xml" /><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8814077298454806308.post-8522389686275679364</guid><pubDate>Thu, 11 Sep 2008 22:12:00 +0000</pubDate><atom:updated>2008-09-15T19:49:42.339-07:00</atom:updated><title>Ajax Library</title><description>&lt;div style="font-size:11.5px;margin-left:-10px;" &gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Description&lt;/u&gt;&lt;/b&gt;&lt;br/&gt;&lt;br /&gt;AJAX (Asynchronous JavaScript and XML) isn't a new programming language, in fact its been around for a long time... it was just a late bloomer in the popularity department. I have developed an extensive ajax library that I have been using for quite some time. I have stripped it down to its basic structure so its easy to read and allows others to use it as their foundation.&lt;br /&gt;&lt;br /&gt;The concept is quite simple. The ajax.js file consists of two classes, the "webRequest" class and the "xmlHttp" class. The webRequest class is responsible for describing what kind of request you are going to make. For instance, what type of request method will you be using, where is the request going, is this to be done asyncronously? The "xmlHttp" class is responsible for adding or removing post data, sending the request and receiving the response. In addition, these classes contain event handlers so your code can degrade gracefully in the event that ajax isn't supported, and it also provides you the flexibility to execute your own functions during every step of the request.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Code&lt;/u&gt;&lt;/b&gt;&lt;br/&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style="color:green" &gt;&lt;br /&gt;/** &lt;br /&gt;* @projectDescription  xmlHttp Library&lt;br /&gt;*&lt;br /&gt;* @author Ryan Estes  http://www.codeapedia.com&lt;br /&gt;* @version 2&lt;br /&gt;*/&lt;/span&gt;&lt;br /&gt;&lt;span style="color:blue" &gt;function&lt;/span&gt; xmlHttp(pWebRequest)&lt;br /&gt;{&lt;br /&gt;   &lt;span style="color:blue" &gt;this&lt;/span&gt;.request = pWebRequest; &lt;span style="color:green" &gt;// webRequest Object&lt;/span&gt;&lt;br /&gt;   &lt;span style="color:green" &gt;// (optional) string or queryString Object.&lt;/span&gt;&lt;br /&gt;   &lt;span style="color:blue" &gt;this&lt;/span&gt;.postData = null; &lt;br /&gt;   &lt;br /&gt;   &lt;span style="color:green" &gt;// event handlers&lt;/span&gt;&lt;br /&gt;   &lt;span style="color:blue" &gt;this&lt;/span&gt;.onError = function(e) { }&lt;br /&gt;   &lt;span style="color:blue" &gt;this&lt;/span&gt;.onPreRequest = function(sender) { }&lt;br /&gt;   &lt;span style="color:blue" &gt;this&lt;/span&gt;.onPreRequestComplete = function(sender) { }&lt;br /&gt;   &lt;span style="color:blue" &gt;this&lt;/span&gt;.onRequest = function(sender) { }&lt;br /&gt;   &lt;span style="color:blue" &gt;this&lt;/span&gt;.onRequestComplete = function(sender) { }&lt;br /&gt;&lt;br /&gt;   &lt;span style="color:blue" &gt;this&lt;/span&gt;.getResponse = &lt;span style="color:blue" &gt;function&lt;/span&gt;() {&lt;br /&gt;      &lt;span style="color:blue" &gt;var&lt;/span&gt; preReqRef = &lt;span style="color:blue" &gt;this&lt;/span&gt;.onPreRequest;&lt;br /&gt;      &lt;span style="color:blue" &gt;var&lt;/span&gt; preReqCompleteRef = &lt;span style="color:blue" &gt;this&lt;/span&gt;.onPreRequestComplete;&lt;br /&gt;      &lt;span style="color:blue" &gt;var&lt;/span&gt; reqRef = &lt;span style="color:blue" &gt;this&lt;/span&gt;.onRequest;&lt;br /&gt;      &lt;span style="color:blue" &gt;var&lt;/span&gt; reqCompleteRef = &lt;span style="color:blue" &gt;this&lt;/span&gt;.onRequestComplete;&lt;br /&gt;      &lt;span style="color:blue" &gt;try&lt;/span&gt;&lt;br /&gt;      {&lt;br /&gt;         &lt;span style="color:blue" &gt;var&lt;/span&gt; objXmlHttpRequest = &lt;span style="color:blue" &gt;this&lt;/span&gt;.request.xmlHttpRequest;&lt;br /&gt;         objXmlHttpRequest.onreadystatechange = &lt;span style="color:blue" &gt;function&lt;/span&gt;() &lt;br /&gt;         {&lt;br /&gt;            &lt;span style="color:blue" &gt;if&lt;/span&gt;(objXmlHttpRequest.readyState == 0) &lt;br /&gt;            { &lt;br /&gt;               preReqRef(objXmlHttpRequest); &lt;br /&gt;            }&lt;br /&gt;            &lt;span style="color:blue" &gt;else if&lt;/span&gt; (objXmlHttpRequest.readyState == 1) &lt;br /&gt;            { &lt;br /&gt;               preReqCompleteRef(objXmlHttpRequest); &lt;br /&gt;            }&lt;br /&gt;            &lt;span style="color:blue" &gt;else if&lt;/span&gt; (objXmlHttpRequest.readyState == 2) &lt;br /&gt;            { &lt;br /&gt;               reqRef(objXmlHttpRequest); &lt;br /&gt;            }&lt;br /&gt;            &lt;span style="color:blue" &gt;else if&lt;/span&gt; (objXmlHttpRequest.readyState == 4) &lt;br /&gt;            { &lt;br /&gt;               reqCompleteRef(objXmlHttpRequest); &lt;br /&gt;            }&lt;br /&gt;         }&lt;br /&gt;         objXmlHttpRequest.open(&lt;br /&gt;                 &lt;span style="color:blue" &gt;this&lt;/span&gt;.request.method,&lt;br /&gt;                 &lt;span style="color:blue" &gt;this&lt;/span&gt;.request.url,&lt;br /&gt;                 &lt;span style="color:blue" &gt;this&lt;/span&gt;.request.async);&lt;br /&gt;&lt;br /&gt;         &lt;span style="color:blue" &gt;if&lt;/span&gt;(&lt;span style="color:blue" &gt;this&lt;/span&gt;.request.method == &lt;span style="color:#990000" &gt;"POST"&lt;/span&gt;)&lt;br /&gt;         {&lt;br /&gt;            objXmlHttpRequest.setRequestHeader(&lt;br /&gt;                 &lt;span style="color:#990000" &gt;"Content-Type"&lt;/span&gt;,&lt;br /&gt;                 &lt;span style="color:#990000" &gt;"application/x-www-form-urlencoded;"&lt;/span&gt;);&lt;br /&gt;         }&lt;br /&gt;         if(&lt;span style="color:blue" &gt;this&lt;/span&gt;.postData != &lt;span style="color:blue" &gt;null&lt;/span&gt; &amp;&amp;&lt;br /&gt;            &lt;span style="color:blue"&gt;typeof&lt;/span&gt;(&lt;span style="color:blue" &gt;this&lt;/span&gt;.postData) != &lt;span style="color:#990000" &gt;"string"&lt;/span&gt;)&lt;br /&gt;         {&lt;br /&gt;             objXmlHttpRequest.send(&lt;br /&gt;                &lt;span style="color:blue" &gt;this&lt;/span&gt;.postData.toString().replace(&lt;span style="color:#990000" &gt;"?"&lt;/span&gt;,&lt;span style="color:#990000" &gt;""&lt;/span&gt;)&lt;br /&gt;             );&lt;br /&gt;         }&lt;br /&gt;         &lt;span style="color:blue" &gt;else&lt;/span&gt;&lt;br /&gt;         {&lt;br /&gt;            objXmlHttpRequest.send(&lt;span style="color:blue" &gt;this&lt;/span&gt;.postData);&lt;br /&gt;         }&lt;br /&gt;         &lt;br /&gt;      }&lt;br /&gt;      &lt;span style="color:blue" &gt;catch&lt;/span&gt;(e)&lt;br /&gt;      {&lt;br /&gt;         &lt;span style="color:blue" &gt;this&lt;/span&gt;.onError(e);&lt;br /&gt;      }&lt;br /&gt;   }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color:blue" &gt;function&lt;/span&gt; webRequest()&lt;br /&gt;{&lt;br /&gt;   &lt;span style="color:blue" &gt;this&lt;/span&gt;.url = (arguments.length == 1)? arguments[0] : null;&lt;br /&gt;   &lt;span style="color:blue" &gt;this&lt;/span&gt;.method = &lt;span style="color:#990000" &gt;"GET"&lt;/span&gt;;&lt;br /&gt;   &lt;span style="color:blue" &gt;this&lt;/span&gt;.async = &lt;span style="color:blue" &gt;false&lt;/span&gt;;&lt;br /&gt;   &lt;span style="color:blue" &gt;this&lt;/span&gt;.xmlHttpRequest = &lt;span style="color:blue" &gt;null&lt;/span&gt;;&lt;br /&gt;   &lt;span style="color:blue" &gt;this&lt;/span&gt;.onError = function(e) { }&lt;br /&gt;   &lt;br /&gt;   &lt;span style="color:blue" &gt;this&lt;/span&gt;.create = &lt;span style="color:blue" &gt;function&lt;/span&gt;() {&lt;br /&gt;      &lt;span style="color:blue" &gt;if&lt;/span&gt;(arguments.length == 1)&lt;br /&gt;      {&lt;br /&gt;         &lt;span style="color:blue" &gt;this&lt;/span&gt;.url = arguments[0];&lt;br /&gt;      }&lt;br /&gt;      &lt;span style="color:blue" &gt;try&lt;/span&gt;&lt;br /&gt;      {&lt;br /&gt;         &lt;span style="color:blue" &gt;if&lt;/span&gt;(window.ActiveXObject)&lt;br /&gt;         {&lt;br /&gt;            &lt;span style="color:blue" &gt;this&lt;/span&gt;.xmlHttpRequest = &lt;br /&gt;                 &lt;span style="color:blue" &gt;new&lt;/span&gt; ActiveXObject("Microsoft.XMLHTTP");&lt;br /&gt;         }&lt;br /&gt;         &lt;span style="color:blue" &gt;else if&lt;/span&gt; (window.XMLHttpRequest)&lt;br /&gt;         {&lt;br /&gt;           &lt;span style="color:blue" &gt;this&lt;/span&gt;.xmlHttpRequest = &lt;span style="color:blue" &gt;new&lt;/span&gt; XMLHttpRequest();&lt;br /&gt;           &lt;span style="color:blue" &gt;if&lt;/span&gt;(this.url.indexOf(&lt;span style="color:#990000" &gt;".xml"&lt;/span&gt;) != -1)&lt;br /&gt;           {&lt;br /&gt;             &lt;span style="color:blue" &gt;if&lt;/span&gt;(&lt;span style="color:blue" &gt;this&lt;/span&gt;.xmlHttpRequest.overrideMimeType)&lt;br /&gt;             {&lt;br /&gt;               &lt;span style="color:blue" &gt;this&lt;/span&gt;.xmlHttpRequest.overrideMimeType(&lt;span style="color:#990000" &gt;'text/xml'&lt;/span&gt;);&lt;br /&gt;               &lt;span style="color:blue" &gt;this&lt;/span&gt;.async = &lt;span style="color:blue" &gt;true&lt;/span&gt;;&lt;br /&gt;             }&lt;br /&gt;           }&lt;br /&gt;         }&lt;br /&gt;      }&lt;br /&gt;      &lt;span style="color:blue" &gt;catch&lt;/span&gt;(e)&lt;br /&gt;      {&lt;br /&gt;         &lt;span style="color:blue" &gt;this&lt;/span&gt;.onError(e);&lt;br /&gt;      }&lt;br /&gt;   }&lt;br /&gt;   &lt;br /&gt;   &lt;span style="color:blue" &gt;if&lt;/span&gt;(&lt;span style="color:blue" &gt;this&lt;/span&gt;.url != &lt;span style="color:blue" &gt;null&lt;/span&gt;)&lt;br /&gt;   {&lt;br /&gt;      &lt;span style="color:blue" &gt;this&lt;/span&gt;.create();&lt;br /&gt;   }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Example&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Place the code above into an external javascript file called "codeapedia.ajax.js" and include the file within the head tag of your document. Create an xml file called "sample.xml" within your root directory. We are going to use my ajax library to grab the contents of whatever you put in sample.xml and alert it back to us. &lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="color:blue" &gt;var&lt;/span&gt; ajax = &lt;span style="color:blue" &gt;new&lt;/span&gt; xmlHttp(&lt;span style="color:blue" &gt;new&lt;/span&gt; webRequest(&lt;span style="color:#990000" &gt;"sample.xml"&lt;/span&gt;));&lt;br /&gt;ajax.onRequestComplete = &lt;span style="color:blue" &gt;function&lt;/span&gt;(sender)&lt;br /&gt;{&lt;br /&gt;   &lt;span style="color:blue" &gt;alert&lt;/span&gt;(sender.responseText);&lt;br /&gt;}&lt;br /&gt;ajax.getResponse();&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;The example above was more for demonstration purposes. &lt;b&gt;If you wish to see a more comprehensive example&lt;/b&gt; that would be more applicable to a realistic situation &lt;a href="http://www.codeapedia.com/2008/09/ajax-continued.html"&gt;click here&lt;/a&gt;. &lt;br/&gt;&lt;br/&gt;&lt;br /&gt;&lt;/div&gt;</description><link>http://www.codeapedia.com/2008/09/ajax-library.html</link><author>noreply@blogger.com (CodeApedia)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8814077298454806308.post-837656344685838618</guid><pubDate>Thu, 11 Sep 2008 18:21:00 +0000</pubDate><atom:updated>2008-09-12T12:11:23.167-07:00</atom:updated><title>Auth Ticket</title><description>&lt;div style="font-size:11.5px;margin-left:-10px" &gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Description&lt;/u&gt;&lt;/b&gt;&lt;br/&gt;&lt;br /&gt;Many web applications display the username at the upper right hand corner to let the user know that they are logged in. This information is stored within the User.Identity.Name property. I like to load all their basic information such as name, email, date they last logged in, and date they last updated their profile. This way, I don't have to go to the user store (database) everytime this common information is requested. &lt;br /&gt;&lt;br /&gt;Since an authorization ticket is created when the user is authenticated, why not store the additional information in the same place? We can use the UserData property and like other ticket properties, it is encrypted based on your web configuration file. You will need to determine how you wish to serialize the additional information into a string.&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Code&lt;/u&gt;&lt;/b&gt;&lt;br/&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="color:blue"&gt;protected void&lt;/span&gt; LoginAction_Click(&lt;span style="color:blue"&gt;object&lt;/span&gt; sender, &lt;span style="color:#2B91AF"&gt;EventArgs&lt;/span&gt; e)&lt;br /&gt;{&lt;br /&gt;    Page.Validate();&lt;br /&gt;    &lt;span style="color:blue"&gt;if&lt;/span&gt; (!Page.IsValid) &lt;span style="color:blue"&gt;return;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;    &lt;span style="color:blue"&gt;bool&lt;/span&gt; blnIsPersistent = &lt;span style="color:blue"&gt;false&lt;/span&gt;;&lt;br /&gt;    &lt;span style="color:blue"&gt;string&lt;/span&gt; strUserName = txtUserName.Text.Trim();&lt;br /&gt;    &lt;span style="color:blue"&gt;string&lt;/span&gt; strPassword = txtPassword.Text.Trim();&lt;br /&gt;&lt;br /&gt;    &lt;span style="color:blue"&gt;if&lt;/span&gt; (&lt;span style="color:blue"&gt;this&lt;/span&gt;.Authenticate(strUserName, strPassword))&lt;br /&gt;    {&lt;br /&gt;        &lt;span style="color:#2B91AF"&gt;HttpCookie&lt;/span&gt; authCookie = &lt;br /&gt;               &lt;span style="color:#2B91AF"&gt;FormsAuthentication&lt;/span&gt;.GetAuthCookie(&lt;br /&gt;                        strUserName, &lt;br /&gt;                        blnIsPersistent&lt;br /&gt;               );&lt;br /&gt;        &lt;span style="color:#2B91AF"&gt;FormsAuthenticationTicket&lt;/span&gt; authTicket = &lt;br /&gt;                     &lt;span style="color:#2B91AF"&gt;FormsAuthentication&lt;/span&gt;.Decrypt(&lt;br /&gt;                        authCookie.Value&lt;br /&gt;              );&lt;br /&gt;        &lt;span style="color:green"&gt;// retrieve from user store&lt;/span&gt;&lt;br /&gt;        &lt;span style="color:blue"&gt;string&lt;/span&gt; strUserData = &lt;span style="color:#990000"&gt;"data"&lt;/span&gt;; &lt;br /&gt;&lt;br /&gt;        &lt;span style="color:green"&gt;// create new ticket&lt;/span&gt;&lt;br /&gt;        &lt;span style="color:#2B91AF"&gt;FormsAuthenticationTicket&lt;/span&gt; authTicket =&lt;br /&gt;            &lt;span style="color:blue"&gt;new&lt;/span&gt; FormsAuthenticationTicket(&lt;br /&gt;               authTicket.Version,&lt;br /&gt;               authTicket.Name,&lt;br /&gt;               authTicket.IssueDate,&lt;br /&gt;               authTicket.Expiration,&lt;br /&gt;               authTicket.IsPersistent,&lt;br /&gt;               strUserData,&lt;br /&gt;               authTicket.CookiePath&lt;br /&gt;        );&lt;br /&gt;        authCookie.Value = &lt;br /&gt;               &lt;span style="color:#2B91AF"&gt;FormsAuthentication&lt;/span&gt;.Encrypt(authTicketNew);&lt;br /&gt;        Response.Cookies.Add(authCookie);&lt;br /&gt;        Response.Redirect(&lt;br /&gt;               &lt;span style="color:#2B91AF"&gt;FormsAuthentication&lt;/span&gt;.GetRedirectUrl(&lt;br /&gt;                    authTicketNew.Name, &lt;br /&gt;                    authTicketNew.IsPersistent&lt;br /&gt;               )&lt;br /&gt;        );&lt;br /&gt;    }&lt;br /&gt;    &lt;span style="color:blue"&gt;else&lt;/span&gt;&lt;br /&gt;    {&lt;br /&gt;        &lt;span style="color:green"&gt;// do something...&lt;/span&gt;&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;You can access the UserData from another page with the following:&lt;br/&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="color:#2B91AF"&gt;FormsIdentity&lt;/span&gt; identity = User.Identity &lt;span style="color:blue"&gt;as&lt;/span&gt; &lt;span style="color:#2B91AF"&gt;FormsIdentity&lt;/span&gt;;&lt;br /&gt;Response.Write(identity.Ticket.UserData);&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;</description><link>http://www.codeapedia.com/2008/09/auth-ticket.html</link><author>noreply@blogger.com (CodeApedia)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8814077298454806308.post-63584799925745087</guid><pubDate>Thu, 11 Sep 2008 16:09:00 +0000</pubDate><atom:updated>2008-09-12T09:54:47.032-07:00</atom:updated><title>Ajax Continued</title><description>&lt;div style="margin-left:-10px;font-size:11.5px" &gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Example&lt;/u&gt;&lt;/b&gt;&lt;br/&gt;&lt;br /&gt;In this example we have a webpage that displays the most recent videos added to our website. We want to allow the user to select a category from a drop down list and  view the videos under that category. &lt;br/&gt;&lt;br /&gt;There are a few preliminaries that we need to discuss before we look at how to do this with my ajax library. First, we will need a drop down list that displays the names of the categories having the value attributes set to the category id from our database. Second, we need to create a page that accepts a posted guid (cateogry id) and returns an xml serialized document of a list of videos based on that category. &lt;br/&gt; &lt;br /&gt;Our ajax code will send a request along with the category id to our page "GetVideosByCateogryId.aspx". Next we will need to capture this xml using&lt;br /&gt;the responseXML property and parse it using DOM to dynamically display a new grid &lt;br /&gt;of videos. Note: I am using the querystring library to construct the post data. &lt;br/&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Code&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="color:blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#990000"&gt;script&lt;/span&gt; &lt;span style="color:red"&gt;type&lt;/span&gt;&lt;span style="color:blue"&gt;="text/javascript"&lt;/span&gt; &lt;br /&gt;        &lt;span style="color:red"&gt;language&lt;/span&gt;&lt;span style="color:blue"&gt;="javascript"&lt;/span&gt; &lt;br /&gt;        &lt;span style="color:red"&gt;src&lt;/span&gt;&lt;span style="color:blue"&gt;="codeapedia.ajax.js" &amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#990000"&gt;script&lt;/span&gt;&lt;span style="color:blue"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#990000"&gt;script&lt;/span&gt; &lt;span style="color:red"&gt;type&lt;/span&gt;&lt;span style="color:blue"&gt;="text/javascript"&lt;/span&gt; &lt;br /&gt;        &lt;span style="color:red"&gt;language&lt;/span&gt;&lt;span style="color:blue"&gt;="javascript"&lt;/span&gt; &lt;br /&gt;        &lt;span style="color:red"&gt;src&lt;/span&gt;&lt;span style="color:blue"&gt;="codeapedia.queryString.js" &amp;gt;&lt;br /&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#990000"&gt;script&lt;/span&gt;&lt;span style="color:blue"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#990000"&gt;script&lt;/span&gt; &lt;span style="color:red"&gt;type&lt;/span&gt;&lt;span style="color:blue"&gt;="text/javascript"&lt;/span&gt; &lt;span style="color:red"&gt;language&lt;/span&gt;&lt;span style="color:blue"&gt;="javascript"&lt;/span&gt; &lt;span style="color:blue"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color:blue"&gt;var&lt;/span&gt; req = &lt;span style="color:blue"&gt;new&lt;/span&gt; webRequest();&lt;br /&gt;    req.method = &lt;span style="color:#990000"&gt;"POST"&lt;/span&gt;;&lt;br /&gt;    req.async = &lt;span style="color:blue"&gt;true&lt;/span&gt;;&lt;br /&gt;    req.url = &lt;span style="color:#990000"&gt;"GetVideosByCategoryId.aspx"&lt;/span&gt;;&lt;br /&gt;    req.onError = &lt;span style="color:blue"&gt;function&lt;/span&gt;() {&lt;br /&gt;       &lt;span style="color:green"&gt;// do something...&lt;br /&gt;       &lt;br /&gt;       // write code to dynamically display or&lt;br /&gt;&lt;br /&gt;       // dynamically create an ajax not supported &lt;br /&gt;       // panel or&lt;br /&gt;&lt;br /&gt;       // degrade gracefully and redirect to a&lt;br /&gt;       // ajax independent page &lt;/span&gt;&lt;br /&gt;    }&lt;br /&gt;    req.create();&lt;br /&gt;    &lt;span style="color:blue"&gt;var&lt;/span&gt; ajax = &lt;span style="color:blue"&gt;new&lt;/span&gt; xmlHttp(req);&lt;br /&gt;    ajax.postData = &lt;span style="color:blue"&gt;new&lt;/span&gt; querystring();&lt;br /&gt;    ajax.postData.add(&lt;br /&gt;            &lt;span style="color:#990000"&gt;"categoryId"&lt;/span&gt;,&lt;br /&gt;            &lt;span style="color:#990000"&gt;"{3F2504E0-4F89-11D3-9A0C-0305E82C3301}"&lt;/span&gt;&lt;br /&gt;    );&lt;br /&gt;    ajax.onError = &lt;span style="color:blue"&gt;function&lt;/span&gt;(e) {&lt;br /&gt;       &lt;span style="color:green"&gt;// do something...&lt;br /&gt;       &lt;br /&gt;       // dynamically display an error message&lt;/span&gt;&lt;br /&gt;    }&lt;br /&gt;    ajax.onPreRequestComplete = &lt;span style="color:blue"&gt;function&lt;/span&gt;(sender) {&lt;br /&gt;       &lt;span style="color:green"&gt;// do something...&lt;br /&gt;       &lt;br /&gt;       // dynamically load an animated gif&lt;br /&gt;       // that lets the user know that the&lt;br /&gt;       // request is being sent and the data&lt;br /&gt;       // is loading &lt;/span&gt;&lt;br /&gt;    }&lt;br /&gt;    ajax.onRequestComplete = &lt;span style="color:blue"&gt;function&lt;/span&gt;(sender) {&lt;br /&gt;       &lt;span style="color:blue"&gt;if&lt;/span&gt;(sender.status == 200)&lt;br /&gt;       {&lt;br /&gt;          &lt;span style="color:green"&gt;// do something...&lt;br /&gt;          &lt;br /&gt;          // parse out the xml of the videos&lt;br /&gt;          // returned and dynamically display&lt;br /&gt;          // the information using sender.responseXML &lt;/span&gt;&lt;br /&gt;          &lt;br /&gt;       }&lt;br /&gt;       &lt;span style="color:blue"&gt;else&lt;/span&gt;&lt;br /&gt;       {&lt;br /&gt;          &lt;span style="color:green"&gt;// do something...&lt;/span&gt;&lt;br /&gt;       }&lt;br /&gt;    }&lt;br /&gt;    ajax.getResponse();&lt;br /&gt;&lt;span style="color:blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#990000"&gt;script&lt;/span&gt;&lt;span style="color:blue"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;&lt;b&gt;If you have not yet seen the querystring library&lt;/b&gt;, &lt;a href="http://www.codeapedia.com/2008/07/querystring.html"&gt;click here to view codeapedia.querystring.js&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;br /&gt;&lt;/div&gt;</description><link>http://www.codeapedia.com/2008/09/ajax-continued.html</link><author>noreply@blogger.com (CodeApedia)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8814077298454806308.post-2102552480766388729</guid><pubDate>Wed, 10 Sep 2008 21:35:00 +0000</pubDate><atom:updated>2008-09-11T18:03:08.544-07:00</atom:updated><title>Shopping Cart</title><description>&lt;div style="font-size:11.5px;margin-left:-8px;" &gt;&lt;br /&gt;It may be practical to use the DataRow and DataTable objects to represent a shopping cart and it's items. However, I have found this approach to be counterproductive more often than not, especially in scenarios where the shopping cart doesn't correspond to a table in your database. In this article, we will create our own classes to represent the shopping cart and its items. &lt;br/&gt;&lt;br /&gt;For simplicity, we will be ignoring any authentication and/or authorization requirements. But before we do so, I wanted to touch slightly on this topic while I got you thinking about it. A visitor's Shopping Cart can easily be stored into their Profile by using the .NET Profiles API. In doing so, you can store this information permanently for repeat and future visits. In the event a user logs in after they have added an item to their shopping cart, not to worry the Profiles API supports migrating anonymous profiles. Most can make a good argument on how this API cansuffer from poor performance and/or scalability, however with good state management practices, it gets a double thumbs up from me! &lt;br/&gt;&lt;br /&gt;&lt;b&gt;Code (ShoppingCartItem Class)&lt;/b&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="color:blue" &gt;private int&lt;/span&gt; _intProductId;&lt;br /&gt;&lt;span style="color:blue" &gt;private string&lt;/span&gt; _strProductName; &lt;br /&gt;&lt;span style="color:blue" &gt;private int&lt;/span&gt; _intQuantity;&lt;br /&gt;&lt;span style="color:blue" &gt;private decimal&lt;/span&gt; _decUnitPrice;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:blue" &gt;public&lt;/span&gt; &lt;span style="color:#038a79" &gt;ShoppingCartItem()&lt;/span&gt; : &lt;span style="color:blue" &gt;this&lt;/span&gt;(0, &lt;span style="color:#038a79" &gt;String&lt;/span&gt;.Empty, 0, 0m) { }&lt;br /&gt;&lt;br /&gt;&lt;span style="color:blue" &gt;public&lt;/span&gt; &lt;span style="color:#038a79" &gt;ShoppingCartItem&lt;/span&gt;(&lt;span style="color:blue" &gt;int&lt;/span&gt; pProductId, &lt;span style="color:blue" &gt;string&lt;/span&gt; pProductName,&lt;br /&gt;                          &lt;span style="color:blue" &gt;int&lt;/span&gt; pQuantity, &lt;span style="color:blue" &gt;decimal&lt;/span&gt; pUnitPrice)&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color:blue" &gt;this&lt;/span&gt;._intProductId = pProductId;&lt;br /&gt;    &lt;span style="color:blue" &gt;this&lt;/span&gt;._strProductName = pProductName;&lt;br /&gt;    &lt;span style="color:blue" &gt;this&lt;/span&gt;._intQuantity = pQuantity;&lt;br /&gt;    &lt;span style="color:blue" &gt;this&lt;/span&gt;._decUnitPrice = pUnitPrice;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color:blue" &gt;public int&lt;/span&gt; ProductId&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color:blue" &gt;get&lt;/span&gt; { &lt;span style="color:blue" &gt;return this&lt;/span&gt;._intProductId; }&lt;br /&gt;    &lt;span style="color:blue" &gt;set&lt;/span&gt; { &lt;span style="color:blue" &gt;this&lt;/span&gt;._intProductId = &lt;span style="color:blue" &gt;value&lt;/span&gt;; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color:blue" &gt;public string&lt;/span&gt; ProductName&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color:blue" &gt;get&lt;/span&gt; { &lt;span style="color:blue" &gt;return this&lt;/span&gt;._strProductName; }&lt;br /&gt;    &lt;span style="color:blue" &gt;set&lt;/span&gt; { &lt;span style="color:blue" &gt;this&lt;/span&gt;._strProductName = &lt;span style="color:blue" &gt;value&lt;/span&gt;; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color:blue" &gt;public int&lt;/span&gt; Quantity&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color:blue" &gt;get&lt;/span&gt; { &lt;span style="color:blue" &gt;return this&lt;/span&gt;._intQuantity; }&lt;br /&gt;    &lt;span style="color:blue" &gt;set&lt;/span&gt; { &lt;span style="color:blue" &gt;this&lt;/span&gt;._intQuantity = &lt;span style="color:blue" &gt;value&lt;/span&gt;; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color:blue" &gt;public decimal&lt;/span&gt; UnitPrice&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color:blue" &gt;get&lt;/span&gt; { &lt;span style="color:blue" &gt;return this&lt;/span&gt;._decUnitPrice; }&lt;br /&gt;    &lt;span style="color:blue" &gt;set&lt;/span&gt; { &lt;span style="color:blue" &gt;this&lt;/span&gt;._decUnitPrice = &lt;span style="color:blue" &gt;value&lt;/span&gt;; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color:blue" &gt;public decimal&lt;/span&gt; ItemTotal&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color:blue" &gt;get&lt;/span&gt; { &lt;span style="color:blue" &gt;return this&lt;/span&gt;._intQuantity * &lt;span style="color:blue" &gt;this&lt;/span&gt;._decUnitPrice; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color:blue" &gt;public static&lt;/span&gt; &lt;span style="color:#038a79" &gt;ShoppingCartItem&lt;/span&gt; Empty&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color:blue" &gt;get&lt;/span&gt; { &lt;span style="color:blue" &gt;return new&lt;/span&gt; &lt;span style="color:#038a79" &gt;ShoppingCartItem()&lt;/span&gt;; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color:blue" &gt;public override bool&lt;/span&gt;  Equals(&lt;span style="color:blue" &gt;object&lt;/span&gt; obj)&lt;br /&gt;{&lt;br /&gt;     &lt;span style="color:blue" &gt;if&lt;/span&gt;(obj == &lt;span style="color:blue" &gt;null&lt;/span&gt;)&lt;br /&gt;     {&lt;br /&gt;         &lt;span style="color:blue" &gt;return false&lt;/span&gt;;&lt;br /&gt;     }&lt;br /&gt;     &lt;span style="color:blue" &gt;if&lt;/span&gt;(&lt;span style="color:#038a79" &gt;Object&lt;/span&gt;.ReferenceEquals(&lt;span style="color:blue" &gt;this&lt;/span&gt;,obj)) &lt;br /&gt;     {&lt;br /&gt;         &lt;span style="color:blue" &gt;return true&lt;/span&gt;;&lt;br /&gt;     }&lt;br /&gt;     &lt;span style="color:blue" &gt;if&lt;/span&gt;(&lt;span style="color:blue" &gt;this&lt;/span&gt;.GetType() != obj.GetType())&lt;br /&gt;     {&lt;br /&gt;         &lt;span style="color:blue" &gt;return false&lt;/span&gt;;&lt;br /&gt;     }&lt;br /&gt;     &lt;span style="color:#038a79" &gt;ShoppingCartItem&lt;/span&gt; objCartItem = &lt;span style="color:#038a79" &gt;(ShoppingCartItem)&lt;/span&gt;obj;&lt;br /&gt;     &lt;span style="color:blue" &gt;if&lt;/span&gt;(&lt;span style="color:blue" &gt;this&lt;/span&gt;._intProductId == objCartItem._intProductId)&lt;br /&gt;     {&lt;br /&gt;         &lt;span style="color:blue" &gt;return true&lt;/span&gt;;&lt;br /&gt;     }&lt;br /&gt;    &lt;span style="color:blue" &gt;return false&lt;/span&gt;;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color:blue" &gt;public override int&lt;/span&gt; GetHashCode()&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color:blue" &gt;return this&lt;/span&gt;._intProductId.GetHashCode();&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Lets take a quick look at some methods that may not be so obvious. Specifically, the ones that were overridden. We redefined the Equals and GetHashCode methods to say two shopping cart items are the same if they have the same product id. This is done, so when we add or remove items from the shopping cart that are the same, we update the quantities instead of adding or removing the same product more than once. &lt;br/&gt;&lt;br /&gt;Notice that the property ItemTotal does not derive from a private member variable. This property is helpful when binding your cart to a Web Control such as the GridView cause it allows you to show the total price for each item and can be formatted using the String Formatter "{0:c}".&lt;br/&gt;&lt;br /&gt;&lt;b&gt;Code (Shopping Cart Class)&lt;/b&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="color:blue" &gt;public&lt;/span&gt; &lt;span style="color:#038a79" &gt;ShoppingCart()&lt;/span&gt; { }&lt;br /&gt;&lt;br /&gt;&lt;span style="color:blue" &gt;public int&lt;/span&gt; Count&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color:blue" &gt;get&lt;/span&gt;&lt;br /&gt;    {&lt;br /&gt;        &lt;span style="color:blue" &gt;return this&lt;/span&gt;.List.Count;&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color:blue" &gt;public&lt;/span&gt; &lt;span style="color:#038a79" &gt;ShoppingCartItem&lt;/span&gt; &lt;span style="color:blue" &gt;this&lt;/span&gt;[&lt;span style="color:blue" &gt;int&lt;/span&gt; pIndex]&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color:blue" &gt;get&lt;/span&gt;&lt;br /&gt;    {&lt;br /&gt;        &lt;span style="color:blue" &gt;if&lt;/span&gt; (pIndex &lt; 0 || pIndex &gt; &lt;span style="color:blue" &gt;this&lt;/span&gt;.List.Count)&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color:blue" &gt;return&lt;/span&gt; &lt;span style="color:#038a79" &gt;ShoppingCartItem&lt;/span&gt;.Empty;&lt;br /&gt;        }&lt;br /&gt;        &lt;span style="color:blue" &gt;return&lt;/span&gt; &lt;span style="color:#038a79" &gt;(ShoppingCartItem)&lt;/span&gt;&lt;span style="color:blue" &gt;this&lt;/span&gt;.List[pIndex];&lt;br /&gt;    }&lt;br /&gt;    &lt;span style="color:blue" &gt;set&lt;/span&gt;&lt;br /&gt;    {&lt;br /&gt;        &lt;span style="color:blue" &gt;this&lt;/span&gt;.List[pIndex] = &lt;span style="color:blue" &gt;value&lt;/span&gt;;&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color:blue" &gt;public int&lt;/span&gt; Add(&lt;span style="color:#038a79" &gt;ShoppingCartItem&lt;/span&gt; pCartItem)&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color:blue" &gt;if&lt;/span&gt; (pCartItem.Quantity &lt; 1)&lt;br /&gt;    {&lt;br /&gt;        &lt;span style="color:blue" &gt;return this&lt;/span&gt;.List.Count;&lt;br /&gt;    }&lt;br /&gt;    &lt;span style="color:blue" &gt;if&lt;/span&gt;(&lt;span style="color:blue" &gt;this&lt;/span&gt;.Contains(pCartItem))&lt;br /&gt;    {&lt;br /&gt;        &lt;span style="color:#038a79" &gt;ShoppingCartItem&lt;/span&gt; objDirtyCartItem = &lt;br /&gt;                            &lt;span style="color:blue" &gt;this&lt;/span&gt;[&lt;span style="color:blue" &gt;this&lt;/span&gt;.IndexOf(pCartItem)];&lt;br /&gt;        objDirtyCartItem.Quantity = &lt;br /&gt;                            objDirtyCartItem.Quantity + &lt;br /&gt;                            pCartItem.Quantity;&lt;br /&gt;        &lt;span style="color:blue" &gt;this&lt;/span&gt;[&lt;span style="color:blue" &gt;this&lt;/span&gt;.IndexOf(pCartItem)] = objDirtyCartItem;&lt;br /&gt;        &lt;span style="color:blue" &gt;return this&lt;/span&gt;.List.Count;&lt;br /&gt;    }&lt;br /&gt;    &lt;span style="color:blue" &gt;return&lt;/span&gt; (&lt;span style="color:blue" &gt;this&lt;/span&gt;.List.Add(pCartItem));&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color:blue" &gt;public int&lt;/span&gt; IndexOf(&lt;span style="color:#038a79" &gt;ShoppingCartItem&lt;/span&gt; pCartItem)&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color:blue" &gt;return&lt;/span&gt; (&lt;span style="color:blue" &gt;this&lt;/span&gt;.List.IndexOf(pCartItem));&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color:blue" &gt;public void&lt;/span&gt; Remove(&lt;span style="color:#038a79" &gt;ShoppingCartItem&lt;/span&gt; pCartItem)&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color:blue" &gt;if&lt;/span&gt; (&lt;span style="color:blue" &gt;this&lt;/span&gt;.Contains(pCartItem))&lt;br /&gt;    {&lt;br /&gt;        &lt;span style="color:#038a79" &gt;ShoppingCartItem&lt;/span&gt; objDirtyCartItem = &lt;br /&gt;                            &lt;span style="color:blue" &gt;this&lt;/span&gt;[&lt;span style="color:blue" &gt;this&lt;/span&gt;.IndexOf(pCartItem)];&lt;br /&gt;        objDirtyCartItem.Quantity = &lt;br /&gt;                            objDirtyCartItem.Quantity - &lt;br /&gt;                            pCartItem.Quantity;&lt;br /&gt;        &lt;span style="color:blue" &gt;if&lt;/span&gt; (objDirtyCartItem.Quantity &gt; 0)&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color:blue" &gt;this&lt;/span&gt;[&lt;span style="color:blue" &gt;this&lt;/span&gt;.IndexOf(pCartItem)] = objDirtyCartItem;&lt;br /&gt;        }&lt;br /&gt;        &lt;span style="color:blue" &gt;else&lt;/span&gt;&lt;br /&gt;        {&lt;br /&gt;            List.Remove(pCartItem);&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color:blue" &gt;public bool&lt;/span&gt; Contains(&lt;span style="color:#038a79" &gt;ShoppingCartItem&lt;/span&gt; pCartItem)&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color:blue" &gt;return&lt;/span&gt; (List.Contains(pCartItem));&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;The ShoppingCart Class needs to inherit from CollectionBase. When I use the term "dirty" it means that the object has either been modified and/or needs to be updated. Notice I did not use the Insert method. Add more methods and properties as you feel necessary. &lt;br/&gt;&lt;br /&gt;If you are not using the Profiles API as mentioned above, you can instead use state management to store the user's shopping cart information. This includes Session, Serialization, Appending to an authorization ticket, and so on... What ever you chose, make sure you evaluate your needs before you determine how you want to persist your cart information.&lt;br /&gt;&lt;/div&gt;</description><link>http://www.codeapedia.com/2008/09/shopping-cart.html</link><author>noreply@blogger.com (CodeApedia)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8814077298454806308.post-8486762700922580247</guid><pubDate>Wed, 10 Sep 2008 21:32:00 +0000</pubDate><atom:updated>2008-09-15T15:02:05.844-07:00</atom:updated><title>Using External JS Files</title><description>&lt;div style="margin-left:-10px;font-size:11.5px;" &gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Description&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;In some cases, it can be very useful to use an external javascript file to separate the code from the development interface within the CRM. This can be easily done with a little bit of DOM scripting. I use this technique to improve readability and code re-usability. One thing to remember, is that external javascript files are cached until removed by the client. Therefore you need to carefully consider when to implement this technique. &lt;br/&gt;&lt;br/&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Code&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;pre&gt; &lt;br /&gt;   &lt;span style="color:blue"&gt;var&lt;/span&gt; lnk = document.createElement(&lt;span style="color:#990000"&gt;"script"&lt;/span&gt;);&lt;br /&gt;   lnk.type = &lt;span style="color:#990000"&gt;"text/javascript"&lt;/span&gt;;&lt;br /&gt;   lnk.language = &lt;span style="color:#990000"&gt;"javascript"&lt;/span&gt;;&lt;br /&gt;   lnk.src = &lt;span style="color:#990000"&gt;"/mycustomizations/js/[filename].js"&lt;/span&gt;;&lt;br /&gt;   document.crmForm.appendChild(lnk);&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;</description><link>http://www.codeapedia.com/2008/09/using-external-js-files.html</link><author>noreply@blogger.com (CodeApedia)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8814077298454806308.post-5480627213613622195</guid><pubDate>Sun, 27 Jul 2008 19:31:00 +0000</pubDate><atom:updated>2008-09-15T19:45:47.272-07:00</atom:updated><title>Querystring</title><description>&lt;div style="font-size:11.5px" &gt;&lt;br /&gt;  &lt;b&gt;&lt;u&gt;Description&lt;/u&gt;&lt;/b&gt;&lt;br/&gt;&lt;br/&gt;&lt;br /&gt;  The codeapedia.querystring.js class parses a collection of name/value pairs representing the elements of a client form submitted via the GET method. &lt;br/&gt;&lt;br/&gt;&lt;br /&gt;  &lt;b&gt;&lt;u&gt;Code&lt;/u&gt;&lt;/b&gt;&lt;br/&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="color:green" &gt;&lt;br /&gt;/**&lt;br /&gt;* @projectDescription  querystring  library&lt;br /&gt;*&lt;br /&gt;* @author   Ryan Estes  http://www.codeapedia.com&lt;br /&gt;* @version  0.3&lt;br /&gt;*/&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt;* Create a new instance of querystring&lt;br /&gt;*&lt;br /&gt;* @classDescription        Defines a querystring&lt;br /&gt;* @return {coordinate}     Returns a new querystring.&lt;br /&gt;* @type {Object}&lt;br /&gt;* @constructor             optional argument&lt;br /&gt;*/&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:blue"&gt;function&lt;/span&gt; querystring()&lt;br /&gt;{&lt;br /&gt;   &lt;span style="color:blue"&gt;this&lt;/span&gt;._obj = &lt;span style="color:blue"&gt;new&lt;/span&gt; Object();&lt;br /&gt;   &lt;span style="color:blue"&gt;if&lt;/span&gt;(arguments.length == 1)&lt;br /&gt;   {&lt;br /&gt;      &lt;span style="color:blue"&gt;var&lt;/span&gt; str = arguments[0].replace(/\+/g, &lt;span style="color:#990000"&gt;" "&lt;/span&gt;);&lt;br /&gt;      &lt;span style="color:blue"&gt;if&lt;/span&gt;(str.indexOf(&lt;span style="color:#990000"&gt;"?"&lt;/span&gt;) == 0)&lt;br /&gt;      {&lt;br /&gt;         str = str.substring(1,str.length);&lt;br /&gt;      }&lt;br /&gt;      &lt;span style="color:blue"&gt;var&lt;/span&gt; arr = str.split(&lt;span style="color:#990000"&gt;"&amp;"&lt;/span&gt;);&lt;br /&gt;      &lt;span style="color:blue"&gt;for&lt;/span&gt;(&lt;span style="color:blue"&gt;var&lt;/span&gt; i = 0; i &lt; arr.length; i++)&lt;br /&gt;      {&lt;br /&gt;         &lt;span style="color:blue"&gt;var&lt;/span&gt; p = arr[i].split(&lt;span style="color:#990000"&gt;"="&lt;/span&gt;);&lt;br /&gt;         &lt;span style="color:blue"&gt;if&lt;/span&gt;(p.length == 2)&lt;br /&gt;         {&lt;br /&gt;            &lt;span style="color:blue"&gt;this&lt;/span&gt;._obj[unescape(p[0])] = unescape(p[1]);&lt;br /&gt;         }&lt;br /&gt;      }&lt;br /&gt;   }&lt;br /&gt;&lt;span style="color:green"&gt;&lt;br /&gt;   /**&lt;br /&gt;   * Adds an entry with the specified&lt;br /&gt;   * name and value.&lt;br /&gt;   * @return {void}&lt;br /&gt;   */&lt;/span&gt;&lt;br /&gt;   &lt;span style="color:blue"&gt;this&lt;/span&gt;.add = &lt;span style="color:blue"&gt;function&lt;/span&gt;(pKey,pValue) {&lt;br /&gt;     &lt;span style="color:blue"&gt;if&lt;/span&gt;(pKey != null &amp;&amp; pValue != null)&lt;br /&gt;     {&lt;br /&gt;        &lt;span style="color:blue"&gt;this&lt;/span&gt;._obj[pKey] = pValue;&lt;br /&gt;     }&lt;br /&gt;   }&lt;br /&gt;&lt;span style="color:green"&gt;&lt;br /&gt;   /**&lt;br /&gt;   * Removes all entries&lt;br /&gt;   * @return {void}&lt;br /&gt;   */ &lt;/span&gt;&lt;br /&gt;   &lt;span style="color:blue"&gt;this&lt;/span&gt;.clear = &lt;span style="color:blue"&gt;function&lt;/span&gt;() {&lt;br /&gt;      &lt;span style="color:blue"&gt;this&lt;/span&gt;._obj = new Object();&lt;br /&gt;   }&lt;br /&gt;   &lt;span style="color:green"&gt;&lt;br /&gt;   /**&lt;br /&gt;   * Executes a function while&lt;br /&gt;   * iterating through the entries&lt;br /&gt;   * @return {void}&lt;br /&gt;   */ &lt;/span&gt;&lt;br /&gt;   &lt;span style="color:blue"&gt;this&lt;/span&gt;.enumerate = &lt;span style="color:blue"&gt;function&lt;/span&gt;(f) {&lt;br /&gt;      &lt;span style="color:blue"&gt;for&lt;/span&gt;(k &lt;span style="color:blue"&gt;in this&lt;/span&gt;._obj)&lt;br /&gt;      {&lt;br /&gt;         f(k,&lt;span style="color:blue"&gt;this&lt;/span&gt;._obj[k]);&lt;br /&gt;      }&lt;br /&gt;   }&lt;br /&gt;&lt;span style="color:green" &gt;&lt;br /&gt;   /**&lt;br /&gt;   * Gets the value at the specified name&lt;br /&gt;   * @return {string}&lt;br /&gt;   */ &lt;/span&gt;&lt;br /&gt;   &lt;span style="color:blue" &gt;this&lt;/span&gt;.get = &lt;span style="color:blue" &gt;function&lt;/span&gt;(pKey) {&lt;br /&gt;      &lt;span style="color:blue" &gt;return this&lt;/span&gt;._obj[pKey];&lt;br /&gt;   }&lt;br /&gt;&lt;span style="color:green" &gt;&lt;br /&gt;   /**&lt;br /&gt;   * Gets the number of key/value pairs&lt;br /&gt;   * @return {int}&lt;br /&gt;   */  &lt;/span&gt;&lt;br /&gt;   &lt;span style="color:blue" &gt;this&lt;/span&gt;.getCount = &lt;span style="color:blue" &gt;function&lt;/span&gt;() {&lt;br /&gt;      &lt;span style="color:blue" &gt;return this&lt;/span&gt;.getKeys().length;&lt;br /&gt;   }&lt;br /&gt;   &lt;span style="color:green" &gt;&lt;br /&gt;   /**&lt;br /&gt;   * Gets all keys&lt;br /&gt;   * @return {string[]}&lt;br /&gt;   */ &lt;/span&gt;&lt;br /&gt;   &lt;span style="color:blue" &gt;this&lt;/span&gt;.getKeys = &lt;span style="color:blue" &gt;function&lt;/span&gt;() {&lt;br /&gt;      &lt;span style="color:blue" &gt;var&lt;/span&gt; arr = &lt;span style="color:blue" &gt;new&lt;/span&gt; Array();&lt;br /&gt;      &lt;span style="color:blue" &gt;var&lt;/span&gt; f = &lt;span style="color:blue" &gt;function&lt;/span&gt;() {&lt;br /&gt;         arr.push(arguments[0]);&lt;br /&gt;      }&lt;br /&gt;      &lt;span style="color:blue" &gt;this&lt;/span&gt;.enumerate(f);&lt;br /&gt;      &lt;span style="color:blue" &gt;return&lt;/span&gt; arr;&lt;br /&gt;   }&lt;br /&gt;&lt;span style="color:green" &gt;&lt;br /&gt;   /**&lt;br /&gt;   * Gets all values&lt;br /&gt;   * @return {string[]}&lt;br /&gt;   */  &lt;/span&gt;&lt;br /&gt;   &lt;span style="color:blue" &gt;this&lt;/span&gt;.getValues = &lt;span style="color:blue" &gt;function&lt;/span&gt;() {&lt;br /&gt;      &lt;span style="color:blue" &gt;var&lt;/span&gt; arr = &lt;span style="color:blue" &gt;new&lt;/span&gt; Array();&lt;br /&gt;      &lt;span style="color:blue" &gt;var&lt;/span&gt; f = &lt;span style="color:blue" &gt;function&lt;/span&gt;() {&lt;br /&gt;         arr.push(arguments[1]);&lt;br /&gt;      }&lt;br /&gt;      &lt;span style="color:blue" &gt;this&lt;/span&gt;.enumerate(f);&lt;br /&gt;      &lt;span style="color:blue" &gt;return&lt;/span&gt; arr;&lt;br /&gt;   }&lt;br /&gt;   &lt;span style="color:green" &gt;&lt;br /&gt;   /**&lt;br /&gt;   * Returns a value indicating whether&lt;br /&gt;   * or not the key exists.&lt;br /&gt;   * @return {bool}&lt;br /&gt;   */  &lt;/span&gt;&lt;br /&gt;   &lt;span style="color:blue" &gt;this&lt;/span&gt;.hasKey = &lt;span style="color:blue" &gt;function&lt;/span&gt;(pKey) {&lt;br /&gt;      &lt;span style="color:blue" &gt;return&lt;/span&gt; this._obj[pKey] != &lt;span style="color:blue" &gt;null&lt;/span&gt;;&lt;br /&gt;   }&lt;br /&gt;   &lt;span style="color:green" &gt;&lt;br /&gt;   /**&lt;br /&gt;   * Returns a value indicating whether&lt;br /&gt;   * or not keys exist.&lt;br /&gt;   * @return {bool}&lt;br /&gt;   */ &lt;/span&gt;&lt;br /&gt;   &lt;span style="color:blue" &gt;this&lt;/span&gt;.hasKeys = &lt;span style="color:blue" &gt;function&lt;/span&gt;() {&lt;br /&gt;       &lt;span style="color:blue" &gt;return this&lt;/span&gt;.getKeys().length &gt; 0;&lt;br /&gt;   }&lt;br /&gt;   &lt;span style="color:green" &gt;&lt;br /&gt;   /**&lt;br /&gt;   * Removes an entry&lt;br /&gt;   * @return {void}&lt;br /&gt;   */  &lt;/span&gt;&lt;br /&gt;   &lt;span style="color:blue" &gt;this&lt;/span&gt;.remove = &lt;span style="color:blue" &gt;function&lt;/span&gt;(pKey){&lt;br /&gt;      &lt;span style="color:blue" &gt;this&lt;/span&gt;._obj[pKey] = &lt;span style="color:blue" &gt;null&lt;/span&gt;;&lt;br /&gt;   }&lt;br /&gt;   &lt;span style="color:green" &gt;&lt;br /&gt;   /**&lt;br /&gt;   * Returns a string representaton of &lt;br /&gt;   * the querystring, a series of key/value &lt;br /&gt;   * pairs separated by an ampersand (&amp;).&lt;br /&gt;   * @return {string}&lt;br /&gt;   */  &lt;/span&gt;&lt;br /&gt;   &lt;span style="color:blue" &gt;this&lt;/span&gt;.toString = &lt;span style="color:blue" &gt;function&lt;/span&gt;() {&lt;br /&gt;      &lt;span style="color:blue" &gt;if&lt;/span&gt;(&lt;span style="color:blue" &gt;this&lt;/span&gt;.getCount() == 0)&lt;br /&gt;      {&lt;br /&gt;         return &lt;span style="color:#990000" &gt;""&lt;/span&gt;;&lt;br /&gt;      }&lt;br /&gt;      &lt;span style="color:blue" &gt;var&lt;/span&gt; str = &lt;span style="color:#990000" &gt;"?"&lt;/span&gt;;&lt;br /&gt;      &lt;span style="color:blue" &gt;var&lt;/span&gt; fnc = &lt;span style="color:blue" &gt;function&lt;/span&gt;() {&lt;br /&gt;         str += (escape(arguments[0]) &lt;br /&gt;                   + &lt;span style="color:#990000" &gt;"="&lt;/span&gt; &lt;br /&gt;                   + escape(arguments[1]) &lt;br /&gt;                   + &lt;span style="color:#990000" &gt;"&amp;"&lt;/span&gt;);&lt;br /&gt;      }&lt;br /&gt;      &lt;span style="color:blue" &gt;this&lt;/span&gt;.enumerate(fnc);&lt;br /&gt;      str = str.replace(/&lt;span style="color:#990000" &gt;" "&lt;/span&gt;/g,&lt;span style="color:#990000" &gt;"+"&lt;/span&gt;)&lt;br /&gt;      str = str.substring(0,str.length - 1);&lt;br /&gt;      &lt;span style="color:blue" &gt;return&lt;/span&gt; str;&lt;br /&gt;   }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Example&lt;/u&gt;&lt;/b&gt;&lt;br/&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="color:blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#990000"&gt;script&lt;/span&gt; &lt;span style="color:red" &gt;type&lt;/span&gt;&lt;span style="color:blue"&gt;="text/javascript"&lt;/span&gt; &lt;span style="color:red"&gt;language&lt;/span&gt;&lt;span style="color:blue"&gt;="javascript" &amp;gt;&lt;/span&gt;&lt;br /&gt;   &lt;span style="color:green"&gt;// page url = http://mydomain.com/default.aspx?id=1&lt;/span&gt;&lt;br /&gt;   &lt;span style="color:blue"&gt;var&lt;/span&gt; qs = &lt;span style="color:blue"&gt;new&lt;/span&gt; querystring(window.location.search);&lt;br /&gt;   alert(qs.get(&lt;span style="color:#990000"&gt;"id"&lt;/span&gt;)); &lt;span style="color:green"&gt;// alerts 1&lt;/span&gt;&lt;br /&gt;&lt;span style="color:blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#990000"&gt;script&lt;/span&gt;&lt;span style="color:blue"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;</description><link>http://www.codeapedia.com/2008/07/querystring.html</link><author>noreply@blogger.com (CodeApedia)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8814077298454806308.post-25780108189680033</guid><pubDate>Sat, 12 Jul 2008 00:01:00 +0000</pubDate><atom:updated>2008-07-11T18:54:38.748-07:00</atom:updated><title>Radio Button behaving like a check box</title><description>&lt;div style="font-size:11.5px" &gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Description&lt;/u&gt;&lt;/b&gt;&lt;br/&gt;&lt;br /&gt;The purpose of this article is to demonstrate how we can make a radio button behave like a check box. I was reluctant to write a blog about this topic, because lets face it, why in the world would anyone want to do this? The purpose of a radio button is to allow a user to select one of many predefined options. Needless to say, after several requests, I decided to tackle this topic. &lt;br/&gt;&lt;br/&gt;&lt;br /&gt;Before we dive into the solution, lets discuss why what appears to be a simple task, is in fact not so simple. Your immediate thoughts might look something like this:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;   &lt;span style="color:blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#c80d0d"&gt;input&lt;/span&gt; &lt;span style="color:red"&gt;type&lt;/span&gt;&lt;span style="color:blue"&gt;=&amp;quot;radio&amp;quot;&lt;/span&gt; &lt;br /&gt;          &lt;span style="color:red"&gt;onclick&lt;/span&gt;&lt;span style="color:blue"&gt;=&amp;quot;this.checked = !this.checked&amp;quot; /&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;This will not work because Internet Explorer will call the onclick event handler before it sets the check state where as Mozilla, Netscape and Opera will set the check state before the onclick event handler is executed. Some might try and use the onfocus event handler to offset the checkstate in parallel with the onclick event handler. In this scenario, Opera and Internet Explorer will only execute the onfocus event handler for the first check state where as Mozilla and Netscape will execute the onclick event handler followed by the onfocus event handler. Basically, we are faced with an impossible combination to account for. We are left with no other solution but to write clunky code to check the browser type before we decide to handle the check state. Or are we? &lt;br/&gt;&lt;br/&gt;&lt;br /&gt;After some thought, I realized that we can exploit what it means to be an XHTML document to provide us with a clean and concise solution. XHTML is simply a reformulation of document types as applications of XML. This means, being XML-conforming, we can introduce new elements or element attributes and access them using the DOM structure, and maintain interopability with XML-Based User Agents.&lt;br/&gt;&lt;br/&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Code&lt;/u&gt;&lt;/b&gt;&lt;br/&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="color:blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#c80d0d"&gt;input&lt;/span&gt; &lt;span style="color:red"&gt;type&lt;/span&gt;&lt;span style="color:blue"&gt;=&amp;quot;radio&amp;quot;&lt;/span&gt; &lt;br /&gt;       &lt;span style="color:red"&gt;onclick&lt;/span&gt;&lt;span style="color:blue"&gt;=&amp;quot;run(this,this.action)&amp;quot;&lt;/span&gt;&lt;br /&gt;       &lt;span style="color:red"&gt;action&lt;/span&gt;&lt;span style="color:blue"&gt;=&amp;quot;check&amp;quot; /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#c80d0d"&gt;script&lt;/span&gt; &lt;span style="color:red"&gt;type&lt;/span&gt;&lt;span style="color:blue"&gt;=&amp;quot;text/javascript&amp;quot;&lt;/span&gt; &lt;span style="color:red"&gt;language&lt;/span&gt;&lt;span style="color:blue"&gt;=&amp;quot;javascript&amp;quot; &amp;gt;&lt;/span&gt;&lt;br /&gt; &lt;span style="color:blue"&gt;function&lt;/span&gt; run(sender,e)&lt;br /&gt; {&lt;br /&gt;   e = (!e)? sender.getAttribute(&lt;span style="color:#c80d0d"&gt;"action"&lt;/span&gt;) : e;&lt;br /&gt;   sender.checked = (e.indexOf(&lt;span style="color:#c80d0d"&gt;"check"&lt;/span&gt;) != -1);&lt;br /&gt;   if(sender[&lt;span style="color:#c80d0d"&gt;"action"&lt;/span&gt;]) &lt;br /&gt;      sender.action = (sender.checked)? &lt;span style="color:#c80d0d"&gt;"clear"&lt;/span&gt; : &lt;span style="color:#c80d0d"&gt;"check"&lt;/span&gt;;&lt;br /&gt;   else &lt;br /&gt;      sender.setAttribute(&lt;br /&gt;            &lt;span style="color:#c80d0d"&gt;"action"&lt;/span&gt;,&lt;br /&gt;            (sender.checked)? &lt;span style="color:#c80d0d"&gt;"clear"&lt;/span&gt; : &lt;span style="color:#c80d0d"&gt;"check"&lt;/span&gt;&lt;br /&gt;      );&lt;br /&gt; }&lt;br /&gt;&lt;span style="color:blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#c80d0d"&gt;script&lt;/span&gt;&lt;span style="color:blue"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br/&gt;&lt;br/&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Explanation&lt;/u&gt;&lt;/b&gt;&lt;br/&gt;&lt;br /&gt;The idea is to define a new element attribute called "action" that will be used to hold a string determining whether we want to check or clear our radio button. Notice the first line in our function "run". Some browsers will treat added attributes as properties of your object, where others will not. So we are checking to see if the "action" property is defined, if it is not, we are accessing the Document Object Model to retrieve the attribute's value. In the same respect, we use setAttribute to set the value of the "action" attribute.&lt;br/&gt;&lt;br/&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Conclusion&lt;/u&gt;&lt;/b&gt;&lt;br/&gt;&lt;br /&gt;We have demonstrated how to make a radio button behave like a check box. Again, a radio button is a graphical user interface widget that allows a user to select one of many options. I would not advise using a radio button in this manner. It will most likely make your interface user-unfriendly. &lt;br /&gt;&lt;/div&gt;</description><link>http://www.codeapedia.com/2008/07/radio-button-like-check-box.html</link><author>noreply@blogger.com (CodeApedia)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8814077298454806308.post-1639508741726640074</guid><pubDate>Sun, 01 Jun 2008 22:05:00 +0000</pubDate><atom:updated>2008-09-19T14:54:45.527-07:00</atom:updated><title>Moving Viewstate</title><description>&lt;div style="font-size:11.5px;margin-left:-10px"&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Description&lt;/u&gt;&lt;/b&gt;&lt;br/&gt;&lt;br/&gt;&lt;br /&gt;The purpose of this article is demonstrate how to move the ViewState content to the bottom of your WebForm in an aspx page.&lt;br/&gt;&lt;br/&gt;&lt;br /&gt;There are many benefits of moving your page's ViewState to the bottom of your WebForm.The most desirable reasons include: it can increase your page rank with search engines because many search algorithms determine page relevancy by searching for keywords at the beginning of the document; in cases where your viewstate is large, the perceived loading time for the client will appear to be faster since your page's content is loading before the ViewState.&lt;br/&gt;&lt;br/&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Code&lt;/u&gt;&lt;/b&gt;&lt;br/&gt;&lt;br/&gt;&lt;br /&gt;&lt;b&gt;STEP 1&lt;/b&gt;: Create a class called "ViewStateModule" and inherit the IHttpModule interface. Below is the contents of the class.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:blue"&gt;void&lt;/span&gt; &lt;span style="color:#038a79"&gt;IHttpModule&lt;/span&gt;.Init(&lt;span style="color:#038a79"&gt;HttpApplication&lt;/span&gt; pHttpApp)&lt;br /&gt;{&lt;br /&gt;    pHttpApp.BeginRequest += &lt;span style="color:blue"&gt;new&lt;/span&gt; EventHandler(OnBeginRequest);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color:blue"&gt;void&lt;/span&gt; &lt;span style="color:#038a79"&gt;IHttpModule&lt;/span&gt;.Dispose() { }&lt;br /&gt;&lt;br /&gt;&lt;span style="color:blue"&gt;internal void&lt;/span&gt; OnBeginRequest(&lt;span style="color:blue"&gt;object&lt;/span&gt; sender, &lt;span style="color:#038a79"&gt;EventArgs&lt;/span&gt; e)&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color:#038a79"&gt;HttpApplication&lt;/span&gt; app = sender &lt;span style="color:blue"&gt;as&lt;/span&gt; &lt;span style="color:#038a79"&gt;HttpApplication&lt;/span&gt;;&lt;br /&gt;    &lt;span style="color:blue"&gt;if&lt;/span&gt; (app != &lt;span style="color:blue"&gt;null&lt;/span&gt;)&lt;br /&gt;    {&lt;br /&gt;        &lt;span style="color:blue"&gt;if&lt;/span&gt; (app.Request.Url.OriginalString.Contains(&lt;span style="color:#c80d0d"&gt;".aspx"&lt;/span&gt;))&lt;br /&gt;        {&lt;br /&gt;            app.Response.Filter = &lt;span style="color:blue"&gt;new&lt;/span&gt; &lt;span style="color:#038a79"&gt;Filter&lt;/span&gt;(&lt;br /&gt;                 app.Response.Filter&lt;br /&gt;            );&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;STEP 2&lt;/b&gt;: Include a nested private class inside "ViewStateModule" called "Filter" that inherits from System.IO.MemoryStream. Below is the class contents.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="color:blue"&gt;private&lt;/span&gt; &lt;span style="color:#038a79"&gt;Stream&lt;/span&gt; _objStream;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:blue"&gt;internal&lt;/span&gt; Filter(&lt;span style="color:#038a79"&gt;Stream&lt;/span&gt; pStream)&lt;br /&gt;{&lt;br /&gt;   &lt;span style="color:blue"&gt;this&lt;/span&gt;._objStream = pStream;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color:blue"&gt;public override void &lt;/span&gt;Write(&lt;br /&gt;   &lt;span style="color:blue"&gt;byte[]&lt;/span&gt; buffer, &lt;span style="color:blue"&gt;int&lt;/span&gt; offset, &lt;span style="color:blue"&gt;int&lt;/span&gt; count&lt;br /&gt;)&lt;br /&gt;{  &lt;br /&gt;   &lt;span style="color:blue"&gt;string&lt;/span&gt; str = &lt;span style="color:#038a79"&gt;Encoding&lt;/span&gt;.Default.GetString(buffer);&lt;br /&gt;   &lt;span style="color:blue"&gt;int&lt;/span&gt; iStartIndex = str.IndexOf(&lt;br /&gt;          &lt;span style="color:#c80d0d"&gt;"&amp;lt;input type=\&amp;quot;hidden\&amp;quot; name=\&amp;quot;__VIEWSTATE\&amp;quot;"&lt;/span&gt;&lt;br /&gt;   );&lt;br /&gt;   &lt;span style="color:blue"&gt;if&lt;/span&gt; (iStartIndex != -1)&lt;br /&gt;   {&lt;br /&gt;      &lt;span style="color:blue"&gt;int&lt;/span&gt; iEndIndex = str.IndexOf(&lt;span style="color:#c80d0d"&gt;"/&amp;gt;"&lt;/span&gt;, iStartIndex) + 2;&lt;br /&gt;      &lt;span style="color:blue"&gt;string&lt;/span&gt; strViewState = str.Substring(&lt;br /&gt;           iStartIndex, iEndIndex - iStartIndex&lt;br /&gt;      );&lt;br /&gt;      str = str.Remove(iStartIndex, iEndIndex - iStartIndex);&lt;br /&gt;      &lt;span style="color:blue"&gt;int&lt;/span&gt; iInsertIndex = str.IndexOf(&lt;span style="color:#c80d0d"&gt;"&amp;lt;/form&amp;gt;"&lt;/span&gt;);&lt;br /&gt;      &lt;span style="color:blue"&gt;if&lt;/span&gt; (iInsertIndex != -1)&lt;br /&gt;      {&lt;br /&gt;         str = str.Insert(iInsertIndex, strViewState);&lt;br /&gt;      }&lt;br /&gt;   }&lt;br /&gt;   &lt;span style="color:blue"&gt;byte[]&lt;/span&gt; arryOut = &lt;span style="color:#038a79"&gt;Encoding&lt;/span&gt;.Default.GetBytes(str);&lt;br /&gt;   &lt;span style="color:blue"&gt;this&lt;/span&gt;._objStream.Write(&lt;br /&gt;          arryOut, 0, arryOut.GetLength(0)&lt;br /&gt;    );&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt; &lt;br /&gt;&lt;b&gt;STEP 3&lt;/b&gt;: Add the HttpModule by placing the XML seen below into your Web.config file. You should place it within the system.web node.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="color:blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#c80d0d"&gt;httpModules&lt;/span&gt;&lt;span style="color:blue"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color:blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#c80d0d"&gt;add&lt;/span&gt; &lt;span style="color:red"&gt;type&lt;/span&gt;&lt;span style="color:blue"&gt;=&amp;quot;ViewStateModule&amp;quot;&lt;/span&gt; &lt;span style="color:red"&gt;name&lt;/span&gt;&lt;span style="color:blue"&gt;=&amp;quot;ViewStateModule&amp;quot;&lt;/span&gt;&lt;span style="color:blue"&gt; /&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#c80d0d"&gt;httpModules&lt;/span&gt;&lt;span style="color:blue"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;</description><link>http://www.codeapedia.com/2008/05/moving-viewstate.html</link><author>noreply@blogger.com (CodeApedia)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8814077298454806308.post-136994210359400661</guid><pubDate>Wed, 28 May 2008 00:36:00 +0000</pubDate><atom:updated>2008-09-15T19:46:22.095-07:00</atom:updated><title>Rollovers / Image Swap</title><description>&lt;div style="font-size:11.5px;margin-left:-10px" &gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Description&lt;/u&gt;&lt;/b&gt;&lt;br/&gt;&lt;br /&gt;We have all dealt with clunky Javascript functions to achieve image rollover effects (image swapping) with the use of mouseover and mouseout event handling. The purpose of this article will be to demonstrate how to do these rollovers, but in a simpler way. &lt;br/&gt;&lt;br /&gt;Basically, the code is going to sweep through the page and determine if an image is swappable. An image is determined to be swappable by using a custom attribute "swap=true". &lt;br /&gt;&lt;pre&gt;&lt;br /&gt;   &lt;span style="color:blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#990000"&gt;img&lt;/span&gt; &lt;span style="color:red"&gt;src&lt;/span&gt;&lt;span style="color:blue"&gt;="../logo.gif"&lt;/span&gt; &lt;span style="color:red"&gt;alt&lt;/span&gt;&lt;span style="color:blue"&gt;="logo"&lt;/span&gt; &lt;span style="color:red"&gt;swap&lt;/span&gt;&lt;span style="color:blue"&gt;="true" /&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;The image "logo.gif" will now be swapped with the image "logo_ro.gif" during a mouse rollover event. Note: you must give your rollover image the same name as the original image and append "_ro" to it. You can change "_ro" to another string constant within the code if you prefer. &lt;br /&gt;&lt;pre&gt;&lt;span style="color:green"&gt;&lt;br /&gt;/**&lt;br /&gt;* @projectDescription  Image Swap Module&lt;br /&gt;*&lt;br /&gt;* @author   Ryan Estes  http://www.codeapedia.com&lt;br /&gt;* @version  0.1&lt;br /&gt;*/&lt;/span&gt;&lt;br /&gt;&lt;span style="color:blue"&gt;var&lt;/span&gt; _NAMING_CONVENTION_IMAGE_SWAP = &lt;span style="color:#990000"&gt;"_ro"&lt;/span&gt;;&lt;br /&gt;&lt;span style="color:blue"&gt;var&lt;/span&gt; image_module = &lt;br /&gt;{&lt;br /&gt;   run : &lt;span style="color:blue"&gt;function&lt;/span&gt;() {&lt;br /&gt;      &lt;span style="color:blue"&gt;var&lt;/span&gt; obj = &lt;span style="color:blue"&gt;null&lt;/span&gt;;&lt;br /&gt;      &lt;span style="color:blue"&gt;var&lt;/span&gt; arr = document.getElementsByTagName(&lt;span style="color:#990000"&gt;"img"&lt;/span&gt;);&lt;br /&gt;      &lt;span style="color:blue"&gt;for&lt;/span&gt;(&lt;span style="color:blue"&gt;var&lt;/span&gt; i = 0; i &lt; arr.length; i++)&lt;br /&gt;      { &lt;br /&gt;         obj = arr[i];&lt;br /&gt;         &lt;span style="color:blue"&gt;if&lt;/span&gt;(image_module.__isSwappable(obj))&lt;br /&gt;         {&lt;br /&gt;            image_module.__addSwapEvents(obj);&lt;br /&gt;            image_module.__preLoad(obj);&lt;br /&gt;         }&lt;br /&gt;      }&lt;br /&gt;   },&lt;br /&gt;   __preLoad : &lt;span style="color:blue"&gt;function&lt;/span&gt;(img) {&lt;br /&gt;      &lt;span style="color:blue"&gt;var&lt;/span&gt; ext = image_module.__getExtension(img);&lt;br /&gt;      &lt;span style="color:blue"&gt;var&lt;/span&gt; objImage = document.createElement(&lt;span style="color:#990000"&gt;"img"&lt;/span&gt;);&lt;br /&gt;      objImage.src = img.src.replace(&lt;br /&gt;             ext,&lt;br /&gt;             _NAMING_CONVENTION_IMAGE_SWAP + ext);&lt;br /&gt;   },&lt;br /&gt;   __getExtension : &lt;span style="color:blue"&gt;function&lt;/span&gt;(img) {&lt;br /&gt;       &lt;span style="color:blue"&gt;var&lt;/span&gt; i = img.src.lastIndexOf(&lt;span style="color:#990000"&gt;"."&lt;/span&gt;);&lt;br /&gt;       &lt;span style="color:blue"&gt;return&lt;/span&gt; ext = img.src.substring(i,img.src.length);&lt;br /&gt;   },&lt;br /&gt;   __isSwappable : &lt;span style="color:blue"&gt;function&lt;/span&gt;(img) {&lt;br /&gt;      &lt;span style="color:blue"&gt;return&lt;/span&gt; img.getAttribute(&lt;span style="color:#990000"&gt;"swap"&lt;/span&gt;) == &lt;span style="color:#990000"&gt;"true"&lt;/span&gt;;&lt;br /&gt;   },&lt;br /&gt;   __addSwapEvents : &lt;span style="color:blue"&gt;function&lt;/span&gt;(img) {&lt;br /&gt;       img.onmouseover = &lt;span style="color:blue"&gt;function&lt;/span&gt;() {&lt;br /&gt;          &lt;span style="color:blue"&gt;var&lt;/span&gt; ext = image_module.__getExtension(img);&lt;br /&gt;          &lt;span style="color:blue"&gt;this&lt;/span&gt;.src = &lt;span style="color:blue"&gt;this&lt;/span&gt;.src.replace(&lt;br /&gt;              ext,&lt;br /&gt;              _NAMING_CONVENTION_IMAGE_SWAP + ext);&lt;br /&gt;       }&lt;br /&gt;       img.onmouseout = &lt;span style="color:blue"&gt;function&lt;/span&gt;() {&lt;br /&gt;          &lt;span style="color:blue"&gt;this&lt;/span&gt;.src = &lt;span style="color:blue"&gt;this&lt;/span&gt;.src.replace(&lt;br /&gt;               _NAMING_CONVENTION_IMAGE_SWAP,&lt;br /&gt;               &lt;span style="color:#990000"&gt;''&lt;/span&gt;);&lt;br /&gt;       }&lt;br /&gt;   }&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;image_module.run();&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;There you have it! Stash this code into an external javascript file called codeapedia.image_module.js and import it at the bottom of your page. &lt;br /&gt;&lt;/div&gt;</description><link>http://www.codeapedia.com/2008/05/rollovers-image-swap.html</link><author>noreply@blogger.com (CodeApedia)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8814077298454806308.post-393686546155317493</guid><pubDate>Thu, 22 May 2008 03:14:00 +0000</pubDate><atom:updated>2008-05-21T20:29:21.055-07:00</atom:updated><title>Creating Text Nodes</title><description>&lt;div style="font-size:11.5px"&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Description&lt;/u&gt;&lt;/b&gt;&lt;br/&gt;&lt;br /&gt;This tutorial will show you how to create new text nodes and add them to the document using DOM scripting.&lt;br /&gt;&lt;br/&gt;&lt;br/&gt;&lt;br /&gt;The createTextNode method creates a new text node containing the specified text. This method returns a reference to the created text node.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;   reference = document.createTextNode(strText);&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;The method takes a single string parameter, strText, of the text to be created. The reference returned is a node object. &lt;br /&gt;&lt;pre&gt;&lt;br /&gt;   &lt;span style="blue"&gt;var&lt;/span&gt; oText = document.createTextNode(&lt;span style="color:#c80d0d"&gt;"Hello World"&lt;/span&gt;);&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;The reference returned by createTextNode is a node object referenced by variable "oText". However, the node has not yet been added to the document, it has only been created. To add to the document:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;   document.appendChild(oText);&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Example&lt;/u&gt;&lt;/b&gt;&lt;br/&gt;&lt;br /&gt;Replicate the HTML code you see below using DOM scripting.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;   &lt;span style="color:blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#c80d0d"&gt;p&lt;/span&gt;&lt;span style="color:blue"&gt;&amp;gt;&lt;/span&gt;Hello World&lt;span style="color:blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#c80d0d"&gt;/p&lt;/span&gt;&lt;span style="color:blue"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;  Solution:&lt;br /&gt; &lt;br /&gt;      &lt;span style="color:blue"&gt;var&lt;/span&gt; p = document.createElement(&lt;span style="color:#c80d0d"&gt;"p"&lt;/span&gt;);&lt;br /&gt;      &lt;span style="color:blue"&gt;var&lt;/span&gt; strText = document.createTextNode(&lt;span style="color:#c80d0d"&gt;"Hello World"&lt;/span&gt;);&lt;br /&gt;      p.appendChild(strText);&lt;br /&gt;      document.appendChild(p);&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;</description><link>http://www.codeapedia.com/2008/05/creating-text-nodes.html</link><author>noreply@blogger.com (CodeApedia)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8814077298454806308.post-5496391509473330367</guid><pubDate>Wed, 21 May 2008 02:36:00 +0000</pubDate><atom:updated>2008-07-27T17:31:45.842-07:00</atom:updated><title>Creating Elements</title><description>&lt;div style="font-size:11.5px"&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Description&lt;/u&gt;&lt;/b&gt;&lt;br/&gt;&lt;br /&gt;The purpose of this article is demonstrate how to dynamically create elements and append them to the document. &lt;br /&gt;&lt;br/&gt;&lt;br/&gt;&lt;br /&gt;&lt;b&gt;createElement&lt;/b&gt;&lt;br/&gt;&lt;br /&gt;The createElement method creates a new element node with the specified name tag. This method returns a reference to the created element.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;   reference = document.createElement(tagName);&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;The method takes a single string parameter (the name of the element to be created).&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;   &lt;span style="color:blue"&gt;var&lt;/span&gt; pnl = document.createElement(&lt;span style="color:#c80d0d"&gt;"div"&lt;/span&gt;);&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;The reference returned by createElement is a node object referenced by variable "pnl". However, the div element has not yet been added to the document, it has only been created. Lets go ahead and set some properties before we add it to the document.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;   &lt;span style="color:blue"&gt;var&lt;/span&gt; pnl = document.createElement(&lt;span style="color:#c80d0d"&gt;"div"&lt;/span&gt;);&lt;br /&gt;   pnl.style.background = &lt;span style="color:#c80d0d"&gt;"#fff"&lt;/span&gt;;&lt;br /&gt;   pnl.style.width = &lt;span style="color:#c80d0d"&gt;"100%"&lt;/span&gt;;&lt;br /&gt;   pnl.style.height = &lt;span style="color:#c80d0d"&gt;"20px"&lt;/span&gt;;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Lastly, adding out element to the document:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;   document.appendChild(pnl);&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Example&lt;/u&gt;&lt;/b&gt;&lt;br/&gt;&lt;br /&gt;Replicate the HTML code you see below using DOM scripting.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;   &lt;span style="color:blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#c80d0d"&gt;table&lt;/span&gt;&lt;span style="color:blue"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span style="color:blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#c80d0d"&gt;tr&lt;/span&gt;&lt;span style="color:blue"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;         &lt;span style="color:blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#c80d0d"&gt;td&lt;/span&gt;&lt;span style="color:blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:blue"&gt;&amp;lt;&lt;/span&gt;/&lt;span style="color:#c80d0d"&gt;td&lt;/span&gt;&lt;span style="color:blue"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span style="color:blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#c80d0d"&gt;tr&lt;/span&gt;&lt;span style="color:blue"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;   &lt;span style="color:blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#c80d0d"&gt;table&lt;/span&gt;&lt;span style="color:blue"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Solution:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;   &lt;span style="color:blue"&gt;var&lt;/span&gt; tbl = document.createElement(&lt;span style="color:#c80d0d"&gt;"table"&lt;/span&gt;);&lt;br /&gt;   &lt;span style="color:blue"&gt;var&lt;/span&gt; tr = document.createElement(&lt;span style="color:#c80d0d"&gt;"tr"&lt;/span&gt;);&lt;br /&gt;   &lt;span style="color:blue"&gt;var&lt;/span&gt; td = document.createElement(&lt;span style="color:#c80d0d"&gt;"td"&lt;/span&gt;);&lt;br /&gt;   tr.appendChild(td);&lt;br /&gt;   tbl.appendChild(tr);&lt;br /&gt;   document.appendChild(tbl);&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;</description><link>http://www.codeapedia.com/2008/05/creating-elements.html</link><author>noreply@blogger.com (CodeApedia)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8814077298454806308.post-4794540065045666126</guid><pubDate>Sat, 17 May 2008 02:55:00 +0000</pubDate><atom:updated>2008-09-16T11:16:39.615-07:00</atom:updated><title>Mouse</title><description>&lt;div style="font-size:11.5px;" &gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Description&lt;/u&gt;&lt;/b&gt;&lt;br/&gt;&lt;br /&gt;The library, codeapedia.mouse.js can be used to track the current mouse position and/or dynamically assign event handlers to the mouse events.&lt;br/&gt;&lt;br/&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Code&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="color:green" &gt;&lt;br /&gt;/**&lt;br /&gt;* @projectDescription  Mouse library&lt;br /&gt;*&lt;br /&gt;* @author   Ryan Estes  http://www.codeapedia.com&lt;br /&gt;* @version  0.2&lt;br /&gt;*/&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt;* Create a new instance of coordinate&lt;br /&gt;*&lt;br /&gt;* @classDescription         Defines a Cartesian coordinate&lt;br /&gt;* @return {coordinate}     Returns a new coordinate.&lt;br /&gt;* @type {Object}&lt;br /&gt;* @constructor &lt;br /&gt;*/&lt;/span&gt;&lt;br /&gt;&lt;span style="color:blue"&gt;var&lt;/span&gt; coordinate = &lt;span style="color:blue"&gt;function&lt;/span&gt;(pX,pY)&lt;br /&gt;{&lt;br /&gt;   &lt;span style="color:blue"&gt;this&lt;/span&gt;.x = pX;&lt;br /&gt;   &lt;span style="color:blue"&gt;this&lt;/span&gt;.y = pY;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color:blue"&gt;var&lt;/span&gt; mouse = &lt;br /&gt;{&lt;br /&gt;    events : &lt;br /&gt;    {&lt;br /&gt;       onclick : 0x000000,&lt;br /&gt;       ondblclick : 0x000001,&lt;br /&gt;       onmouseover : 0x000010,&lt;br /&gt;       onmouseout : 0x000100,&lt;br /&gt;       onmousemove : 0x001000,&lt;br /&gt;       onmouseup : 0x010000,&lt;br /&gt;       onmousedown : 0x100000,&lt;br /&gt;       &lt;span style="color:green"&gt;&lt;br /&gt;       /**&lt;br /&gt;       * Assigns a mouse event to an object&lt;br /&gt;       * @return {void}&lt;br /&gt;       */&lt;/span&gt;&lt;br /&gt;       register : &lt;span style="color:blue"&gt;function&lt;/span&gt;(pFunction,pObject,pEvent)&lt;br /&gt;       {&lt;br /&gt;           &lt;span style="color:blue"&gt;var&lt;/span&gt; e = pEvent;&lt;br /&gt;           &lt;span style="color:blue"&gt;var&lt;/span&gt; f = pFunction;&lt;br /&gt;           &lt;span style="color:blue"&gt;var&lt;/span&gt; o = pObject;&lt;br /&gt;           &lt;br /&gt;           &lt;span style="color:blue"&gt;if&lt;/span&gt;(o == &lt;span style="color:blue"&gt;null&lt;/span&gt; || f == &lt;span style="color:blue"&gt;null&lt;/span&gt;)&lt;br /&gt;           {&lt;br /&gt;              &lt;span style="color:blue"&gt;return false&lt;/span&gt;;&lt;br /&gt;           }&lt;br /&gt;           &lt;span style="color:blue"&gt;if&lt;/span&gt;(o.length)&lt;br /&gt;           {&lt;br /&gt;              o = document.getElementById(o);&lt;br /&gt;           }&lt;br /&gt;           &lt;span style="color:blue"&gt;switch&lt;/span&gt;(e)&lt;br /&gt;           {&lt;br /&gt;              &lt;span style="color:blue"&gt;case&lt;/span&gt; mouse.events.onclick:&lt;br /&gt;                   o.onclick = f;&lt;br /&gt;                   &lt;span style="color:blue"&gt;break&lt;/span&gt;;&lt;br /&gt;              &lt;span style="color:blue"&gt;case&lt;/span&gt; mouse.events.ondblclick:&lt;br /&gt;                   o.ondblclick = f;&lt;br /&gt;                   &lt;span style="color:blue"&gt;break&lt;/span&gt;;&lt;br /&gt;              &lt;span style="color:blue"&gt;case&lt;/span&gt; mouse.events.onmouseover:&lt;br /&gt;                   o.onmouseover = f;&lt;br /&gt;                   &lt;span style="color:blue"&gt;break&lt;/span&gt;;&lt;br /&gt;              &lt;span style="color:blue"&gt;case&lt;/span&gt; mouse.events.onmouseout:&lt;br /&gt;                   o.onmouseout = f;&lt;br /&gt;                   &lt;span style="color:blue"&gt;break&lt;/span&gt;;&lt;br /&gt;              &lt;span style="color:blue"&gt;case&lt;/span&gt; mouse.events.onmousemove:&lt;br /&gt;                   o.onmousemove = f;&lt;br /&gt;                   &lt;span style="color:blue"&gt;break&lt;/span&gt;;&lt;br /&gt;              &lt;span style="color:blue"&gt;case&lt;/span&gt; mouse.events.onmouseup:&lt;br /&gt;                   o.onmouseup = f;&lt;br /&gt;                   &lt;span style="color:blue"&gt;break&lt;/span&gt;;&lt;br /&gt;              &lt;span style="color:blue"&gt;case&lt;/span&gt; mouse.events.onmousedown:&lt;br /&gt;                   o.onmousedown = f;&lt;br /&gt;                   &lt;span style="color:blue"&gt;break&lt;/span&gt;;&lt;br /&gt;              &lt;span style="color:blue"&gt;default&lt;/span&gt;:&lt;br /&gt;                   &lt;span style="color:blue"&gt;throw&lt;/span&gt; &lt;span style="color:#c80d0d"&gt;"Invalid argument exception"&lt;/span&gt;;&lt;br /&gt;           }&lt;br /&gt;       }&lt;br /&gt;    },&lt;br /&gt;    &lt;span style="color:green"&gt;&lt;br /&gt;    /**&lt;br /&gt;    * Gets the current mouse position&lt;br /&gt;    * @return {coordinate}&lt;br /&gt;    */&lt;/span&gt;&lt;br /&gt;    getCoordinate : &lt;span style="color:blue"&gt;function&lt;/span&gt;(e) &lt;br /&gt;    {&lt;br /&gt;        &lt;span style="color:blue"&gt;var&lt;/span&gt; objCoord = &lt;span style="color:blue"&gt;new&lt;/span&gt; coordinate(0,0);&lt;br /&gt;        &lt;span style="color:blue"&gt;if&lt;/span&gt;(!e)&lt;br /&gt;        {&lt;br /&gt;           e = window.&lt;span style="color:blue"&gt;event&lt;/span&gt;;&lt;br /&gt;        }&lt;br /&gt;        &lt;span style="color:blue"&gt;if&lt;/span&gt;(e.pageX &amp;&amp; e.pageY)&lt;br /&gt;        {&lt;br /&gt;           objCoord.x = e.pageX;&lt;br /&gt;           objCoord.y = e.pageY;&lt;br /&gt;        }&lt;br /&gt;        &lt;span style="color:blue"&gt;else if&lt;/span&gt; (e.clientX &amp;&amp; e.clientY)&lt;br /&gt;        {&lt;br /&gt;            objCoord.x = e.clientX + &lt;br /&gt;                       ((document.documentElement.scrollLeft)?&lt;br /&gt;                         document.documentElement.scrollLeft : &lt;br /&gt;                         document.body.scrollLeft);&lt;br /&gt;            objCoord.y = e.clientY + &lt;br /&gt;                       ((document.documentElement.scrollTop)?&lt;br /&gt;                         document.documentElement.scrollTop : &lt;br /&gt;                         document.body.scrollTop);&lt;br /&gt;        }&lt;br /&gt;        &lt;span style="color:blue"&gt;return&lt;/span&gt; objCoord;&lt;br /&gt;    }&lt;br /&gt;};&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Example&lt;/u&gt;&lt;/b&gt;&lt;br/&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;    &lt;span style="color:blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#c80d0d"&gt;body&lt;/span&gt;&lt;span style="color:blue"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;       &lt;span style="color:blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#c80d0d"&gt;a&lt;/span&gt; &lt;span style="color:red"&gt;id&lt;/span&gt;&lt;span style="color:blue"&gt;=&amp;quot;lnk&amp;quot;&lt;/span&gt; &lt;span style="color:red"&gt;href&lt;/span&gt;&lt;span style="color:blue"&gt;=&amp;quot;javacsript:void(0)&amp;quot;&lt;/span&gt; &lt;span style="color:blue"&gt;&amp;gt;&lt;/span&gt;Link&lt;span style="color:#blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#c80d0d"&gt;a&lt;/span&gt;&lt;span style="color:blue"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color:blue"&gt;&amp;lt/&lt;/span&gt;&lt;span style="color:#c80d0d"&gt;body&lt;/span&gt;&lt;span style="color:blue"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color:blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#c80d0d"&gt;script&lt;/span&gt; &lt;span style="color:red"&gt;type&lt;/span&gt;&lt;span style="color:blue"&gt;=&amp;quot;text/javascript&amp;quot;&lt;/span&gt;&lt;span style="color:red"&gt; language&lt;/span&gt;&lt;span style="color:blue"&gt;=&amp;quot;javascript&amp;quot &amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color:blue"&gt;var&lt;/span&gt; f = &lt;span style="color:blue"&gt;function&lt;/span&gt;(&lt;span style="color:blue"&gt;event&lt;/span&gt;) &lt;br /&gt;    {&lt;br /&gt;       &lt;span style="color:blue"&gt;var&lt;/span&gt; evt = arguments[0];&lt;br /&gt;       &lt;span style="color:blue"&gt;var&lt;/span&gt; o = mouse.getCoordinate(evt);&lt;br /&gt;       &lt;span style="color:blue"&gt;alert&lt;/span&gt;(o.x);&lt;br /&gt;       &lt;span style="color:blue"&gt;alert&lt;/span&gt;(o.y);&lt;br /&gt;    }&lt;br /&gt;    mouse.events.register(f,&lt;span style="color:#c80d0d"&gt;"lnk"&lt;/span&gt;,mouse.events.onclick);&lt;br /&gt;    &lt;span style="color:blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#c80d0d"&gt;script&lt;/span&gt;&lt;span style="color:blue"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;</description><link>http://www.codeapedia.com/2008/05/mouse.html</link><author>noreply@blogger.com (CodeApedia)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8814077298454806308.post-5906248608463757137</guid><pubDate>Fri, 16 May 2008 16:28:00 +0000</pubDate><atom:updated>2008-05-26T09:29:41.760-07:00</atom:updated><title>Introduction to DOM</title><description>&lt;div style="font-size:11.5px;" &gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Description&lt;/u&gt;&lt;/b&gt;&lt;br/&gt;&lt;br /&gt;This articles is intended to introduce DOM scripting and demonstrate the benefits of exploiting the Document Object Model.&lt;br /&gt;&lt;br/&gt;&lt;br/&gt;&lt;br /&gt;The term DOM scripting refers to programmatically accessing and updating the Document Object Model. This term typically implies accessing the document with the use of javascript. However, DOM scripting can be done with any programming language that supports the Document Object Model. For instance, CSS instructs the browser on how to display the objects of the document.&lt;br /&gt;&lt;br/&gt;&lt;br/&gt;&lt;br /&gt;&lt;b&gt;Document&lt;/b&gt;&lt;br/&gt;&lt;br /&gt;The Browser needs a document in order to turn it into an object that is compliant with DOM specifications. But what tells the Browser that you have a document or that your document was coded to the correct specifications and do follow the Object Model? The DOCTTYPE (also called a DTD) does just that. It is very important to declare your intended DTD in every web page. Without one, it will be up to the browser to determine how it will interpret your document, and this will lead to inconsistencies and broken code.&lt;br/&gt;&lt;br/&gt;&lt;br /&gt;&lt;b&gt;Object&lt;/b&gt;&lt;br/&gt;&lt;br /&gt;If you ask anyone, an object is an instance of a class. But what does that mean? To put it simply, an object is a name given to a collection of data that can be accessed or modified through properties and methods. Objects can be user-defined, native to the language or provided by the environment in our case the browser. Most people probably never thought about the Browser Object Model. It is what gives you the window object and is responsible for methods such as window.alert,window.open,etc...&lt;br /&gt;&lt;br/&gt;&lt;br/&gt;&lt;br /&gt;&lt;b&gt;Model&lt;/b&gt;&lt;br/&gt;&lt;br /&gt;The DOM model is a blueprint or map of the document. Below represents the beginning of the map's structure. There are way to many elements to list.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;br /&gt;                  html&lt;br /&gt;                  &lt;br /&gt;&lt;br /&gt;      head                       body&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Notice how "head" and "body" are underneath the "html" element or root. We refer to elements like these as children. The element "head" and "body" are considered siblings of each other. What do you think would be the child nodes of "head"? The child nodes would be "meta" and "title". Did I just say node?&lt;br /&gt;&lt;br/&gt;&lt;br/&gt;&lt;br /&gt;What is a node? A node is a term that denotes a point of connection or distribution within a network.&lt;br /&gt;A network is a collection of nodes. There are 12 different node types, but in this article we will only cover the main ones. That is, the element node, attribute node and text node.&lt;br /&gt;&lt;br/&gt;&lt;br/&gt;&lt;br /&gt;&lt;b&gt;Element Nodes&lt;/b&gt;&lt;br/&gt;&lt;br /&gt;Element nodes make up the basic structure of a document. Elements can contain other elements. The only element that isn't contained within another element is the &amp;lt;html&amp;gt; element which is considered the root node of our node tree. There are two well-known methods for retrieving elements:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;   &lt;li&gt;getElementsById&lt;/li&gt;&lt;br /&gt;   &lt;li&gt;getElementsByTagName&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;Example:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;    &lt;span style="color:blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#c80d0d"&gt;p&lt;/span&gt; &lt;span style="color:red"&gt;id&lt;/span&gt;&lt;span style="color:blue"&gt;="p1" &amp;gt;&lt;/span&gt;I am a paragraph&lt;span style="color:blue"&gt;&amp;lt;&lt;/span&gt;/&lt;span style="color:#c80d0d"&gt;p&lt;/span&gt;&lt;span style="color:blue"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color:blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#c80d0d"&gt;script&lt;/span&gt; &lt;span style="color:red"&gt;type&lt;/span&gt;&lt;span style="color:blue"&gt;="text/javascript"&lt;/span&gt; &lt;span style="color:red"&gt;language&lt;/span&gt;&lt;span style="color:blue"&gt;="javascript" &amp;gt;&lt;/span&gt;&lt;br /&gt;       &lt;span style="color:blue"&gt;alert&lt;/span&gt;(document.getElementById("p1").innerHTML);&lt;br /&gt;    &lt;span style="color:blue"&gt;&amp;lt;&lt;/span&gt;/&lt;span style="color:#c80d0d"&gt;script&lt;/span&gt;&lt;span style="color:blue"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;The example above will alert "I am a paragraph". &lt;br/&gt;&lt;br/&gt;&lt;br /&gt;&lt;b&gt;Attribute Nodes&lt;/b&gt;&lt;br/&gt;&lt;br /&gt;Attribute nodes are used to define properties or give more specific information about the element node. For instance,&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;   &lt;span style="color:blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#c80d0d"&gt;span&lt;/span&gt; &lt;span style="color:red"&gt;style&lt;/span&gt;&lt;span style="color:blue"&gt;="margin-left:10px"&lt;/span&gt; &lt;span style="color:blue"&gt;&amp;gt;&lt;/span&gt; I am a label&lt;span style="color:blue"&gt;&amp;lt;&lt;/span&gt;/&lt;span style="color:#c80d0d"&gt;span&lt;/span&gt;&lt;span style="color:blue"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;The attribute node in the example above is "style" with a value of "margin-left:10px."&lt;br /&gt;There are also two popular methods for attribute nodes:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;   &lt;li&gt;getAttribute&lt;/li&gt;&lt;br /&gt;   &lt;li&gt;setAttribute&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;Example:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;    &lt;span style="color:blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#c80d0d"&gt;input&lt;/span&gt; &lt;span style="color:red"&gt;id&lt;/span&gt;&lt;span style="color:blue"&gt;="txt"&lt;/span&gt; &lt;span style="color:red"&gt;type&lt;/span&gt;&lt;span style="color:blue"&gt;="text"&lt;/span&gt; &lt;span style="color:red"&gt;maxlength&lt;/span&gt;&lt;span style="color:blue"&gt;="25"&lt;/span&gt; /&lt;span style="color:blue"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color:blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#c80d0d"&gt;script&lt;/span&gt; &lt;span style="color:red"&gt;type&lt;/span&gt;&lt;span style="color:blue"&gt;="text/javascript"&lt;/span&gt; &lt;span style="color:red"&gt;language&lt;/span&gt;&lt;span style="color:blue"&gt;="javascript" &amp;gt;&lt;/span&gt;&lt;br /&gt;       &lt;span style="color:blue"&gt;alert&lt;/span&gt;(document.getElementById("txt").getAttribute("type"));&lt;br /&gt;    &lt;span style="color:blue"&gt;&amp;lt;&lt;/span&gt;/&lt;span style="color:#c80d0d"&gt;script&lt;/span&gt;&lt;span style="color:blue"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br/&gt;&lt;br/&gt;&lt;br /&gt;&lt;b&gt;Text Nodes&lt;/b&gt;&lt;br/&gt;&lt;br /&gt;Text nodes are always enclosed inside of element nodes. In the example above the text node would be "I am a label".&lt;br /&gt;&lt;br/&gt;&lt;br/&gt;&lt;br /&gt;The purpose of this article was to introduce you to DOM scripting. You can view other articles on this topic to get a more in depth understanding of how to be a true DOMster.&lt;br /&gt;&lt;/div&gt;</description><link>http://www.codeapedia.com/2008/05/how-to-be-dom-ster.html</link><author>noreply@blogger.com (CodeApedia)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8814077298454806308.post-5245609406243544666</guid><pubDate>Thu, 15 May 2008 02:43:00 +0000</pubDate><atom:updated>2008-05-26T09:29:53.635-07:00</atom:updated><title>Managing Resources</title><description>&lt;div style="font-size:11.5px;"&gt;&lt;br /&gt; &lt;b&gt;&lt;u&gt;Descripton&lt;/u&gt;&lt;/b&gt;&lt;br /&gt; &lt;p&gt;&lt;br /&gt;    In this article we will explore the Garbage Collection feature within the .NET Framework and how it gives developers a false sense of security in memory management of their applications. By the end of this article it should be clear that the Garbage Collector does not completely relieve you from memory and resource management.&lt;br /&gt; &lt;/p&gt;&lt;br /&gt;&lt;b&gt;Garbage Collection&lt;/b&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;One of the most important features available in the .Net framework is its automatic garbage collection. The phrase garbage collection can be defined as management of the allocation and release of memory within an application. The Garbage Collector is basically a tool to free up the developer from memory management so he or she can focus on the more important aspects of their application. However, unmanaged resources (resources not managed by CLR), are extremely costly. And waiting for the managed resource to be released that encapsulated it, could have unfavorable consequences such as memory leaks. Especially since the Garbage Collector is nondeterministic, meaning we don't know when it will run. But what exactly are unmanaged resources?&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;b&gt;Most Overlooked Topics in C#&lt;/b&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;Unmanaged resources are resources that the CLR does not manage for you. Examples of unmanaged resources include an Operating System resource such as a file handle, a window or network connection, bitmap or anything else that is critical in the context of the application. The .NET Framework provides the IDisposable interface to help developers ensure that their objects release their resources. And the best way to do so, which in my opinion is one of the most over looked topics in C#, is the &lt;br /&gt;using statement.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;b&gt;Using Directive or Statement?&lt;/b&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;It is unfortunate that when you search "using" in C# literature, more often than not you will end up reading an article about the "using" directive. The using directive allows the use of types in a namespace without having to fully qualify the use of that type. It also allows developers to alias a namespace or type. But this is not what we are talking about here. We are talking about the "using" statement.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;The using statement defines a scope in which an object will be disposed. The using statement ensures that the unmanaged resource is released (Dispose method is called) when the scope of the using statement is exited. It is a programmatic tragedy that there are many code samples on the internet and in literature that lack properly memory management. The all too common is the SqlConnection Object.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;b&gt;SqlConnection Object&lt;/b&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;Since Database connections are resource intensive (unmanaged), they are often pooled by the connection pool manager to improve performance. When a new connection request comes in, the pool manager checks if the pool contains an available connection. If none are available, and the maximum pool size has not been reached, the new connection is created and added to the pool. When the pool does reach its maximum size, all future connection requests are placed in a queue until a connection in the pool becomes available. This will result in a connection time out and most often memory leaks. This is a classic example of why it is important to have good memory management for unmanaged resources.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Code&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;    &lt;span style="color:#2093b4"&gt;SqlConnection&lt;/span&gt; sqlcon = &lt;span style="color:blue"&gt;new&lt;/span&gt; &lt;span style="color:#2093b4"&gt;SqlConnection&lt;/span&gt;();&lt;br /&gt;    sqlcon.ConnectionString = &lt;span style="color:#c80d0d"&gt;"My Connection String"&lt;/span&gt;;&lt;br /&gt;    &lt;span style="color:#2093b4"&gt;SqlCommand&lt;/span&gt; sqlcmd = &lt;span style="color:blue"&gt;new&lt;/span&gt; &lt;span style="color:#2093b4"&gt;SqlCommand&lt;/span&gt;();&lt;br /&gt;    sqlcmd.CommandText = &lt;span style="color:#c80d0d"&gt;"My Command"&lt;/span&gt;;&lt;br /&gt;    sqlcmd.Connection = sqlcon;&lt;br /&gt;&lt;br /&gt;    sqlcon.Open();&lt;br /&gt;    &lt;span style="blue"&gt;object&lt;/span&gt; obj = sqlcmd.ExecuteScalar();&lt;br /&gt;    sqlcon.Close();&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;   There is really not much to say about the code example above. The close method,&lt;br /&gt;sqlcon.Close(), will never be executed if an exception is thrown. Thus causing you to fall victim to poor memory management. So lets take a look at a code sample that will  solve this issue.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;    &lt;span style="color:blue"&gt;object&lt;/span&gt; obj = &lt;span style="color:blue"&gt;null&lt;/span&gt;;&lt;br /&gt;    &lt;span style="color:#2093b4"&gt;SqlConnection&lt;/span&gt; sqlcon = &lt;span style="color:blue"&gt;new&lt;/span&gt; &lt;span style="color:#2093b4"&gt;SqlConnection&lt;/span&gt;();&lt;br /&gt;    sqlcon.ConnectionString = &lt;span style="color:#c80d0d"&gt;"My Connection String"&lt;/span&gt;;&lt;br /&gt;    &lt;span style="color:#2093b4"&gt;SqlCommand&lt;/span&gt; sqlcmd = &lt;span style="color:blue"&gt;new&lt;/span&gt; &lt;span style="color:#2093b4"&gt;SqlCommand&lt;/span&gt;();&lt;br /&gt;    sqlcmd.CommandText = &lt;span style="color:#c80d0d"&gt;"My Command"&lt;/span&gt;;&lt;br /&gt;    sqlcmd.Connection = sqlcon;&lt;br /&gt;&lt;br /&gt;    &lt;span style="color:blue"&gt;try&lt;/span&gt;&lt;br /&gt;    {&lt;br /&gt;        sqlcon.Open();&lt;br /&gt;        obj = sqlcmd.ExecuteScalar();&lt;br /&gt;    }&lt;br /&gt;    &lt;span style="color:blue"&gt;catch&lt;/span&gt;&lt;br /&gt;    {&lt;br /&gt;        &lt;span style="color:green"&gt;// handle exception&lt;/span&gt;&lt;br /&gt;    }&lt;br /&gt;    &lt;span style="color:blue"&gt;finally&lt;/span&gt;&lt;br /&gt;    {&lt;br /&gt;        &lt;span style="color:blue"&gt;if&lt;/span&gt; (sqlcon != &lt;span style="color:blue"&gt;null&lt;/span&gt;)&lt;br /&gt;        {&lt;br /&gt;            sqlcon.Close();&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;In the code sample above we have caught the exception and cleaned up the resources allocated in the try block. Code placed within the scope of the finally block will get executed no matter how your application exits the try block. But in real world, you probably work for a large company and/or are apart of a development team where you are not the only developer working on the same code file. What do you think would happen if you or another developer placed code within that finally block due to time constraints? Well, nothing... as long as that code executed without throwing an exception. As mentioned before, the using statement defines a scope in which objects are to be disposed. Below demonstrates how to properly ensure that unmanaged resources will be released when the code block is exited.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Code&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;    &lt;span style="color:blue"&gt;object&lt;/span&gt; obj = &lt;span style="color:blue"&gt;null&lt;/span&gt;;&lt;br /&gt;    &lt;span style="color:blue"&gt;using&lt;/span&gt; (&lt;span style="color:#2093b4"&gt;SqlConnection&lt;/span&gt; sqlcon = &lt;span style="color:blue"&gt;new&lt;/span&gt; &lt;span style="color:#2093b4"&gt;SqlConnection&lt;/span&gt;())&lt;br /&gt;    {&lt;br /&gt;        sqlcon.ConnectionString = &lt;span style="color:#c80d0d"&gt;"My Connection String"&lt;/span&gt;;&lt;br /&gt;        &lt;span style="color:blue"&gt;using&lt;/span&gt; (&lt;span style="color:#2093b4"&gt;SqlCommand&lt;/span&gt; sqlcmd = &lt;span style="color:blue"&gt;new&lt;/span&gt; &lt;span style="color:#2093b4"&gt;SqlCommand&lt;/span&gt;())&lt;br /&gt;        {&lt;br /&gt;            sqlcmd.Connection = sqlcon;&lt;br /&gt;            sqlcmd.CommandText = &lt;span style="color:#c80d0d"&gt;"My Command"&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;            sqlcon.Open();&lt;br /&gt;            obj = sqlcmd.ExecuteScalar();&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;</description><link>http://www.codeapedia.com/2008/05/managing-resources.html</link><author>noreply@blogger.com (CodeApedia)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8814077298454806308.post-7558295963340409191</guid><pubDate>Wed, 14 May 2008 03:34:00 +0000</pubDate><atom:updated>2008-05-13T21:27:49.085-07:00</atom:updated><title>Lookup fields</title><description>&lt;div style="font-size: 11.5px;"&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Description&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;This article will describe the CRM Lookup field in detail and how to get and set its properties using javascript.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;The lookup field is an array that contains a collection of name/value pairs.&lt;br /&gt;But what is a name/value pair in javascript? Look no further than the Object class. &lt;/p&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt; Example:&lt;br /&gt;&lt;br /&gt;     &lt;span style="color:blue;"&gt;var&lt;/span&gt; obj = &lt;span style="color:blue;"&gt;new &lt;/span&gt;Object();&lt;br /&gt;     obj["name"] = &lt;span style="color: rgb(200, 13, 13);"&gt;"value"&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;     &lt;span style="color:green;"&gt;//Running alert(obj["name"]) will display "value"&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;b&gt;Name Value Collection&lt;/b&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;   &lt;u&gt;Name&lt;/u&gt;      &lt;u&gt;Value&lt;/u&gt;&lt;br /&gt;  &lt;br /&gt;   id        Gets or sets the GUID identifier.&lt;br /&gt;&lt;br /&gt;   name      Gets or sets the name of the record to be &lt;br /&gt;             displayed in the lookup.&lt;br /&gt;&lt;br /&gt;   type      Gets or sets the object type code&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Code&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Retrieving values from a Lookup field&lt;/b&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;Example:  with crmForm.all.new_mylookup&lt;br /&gt;&lt;br /&gt;   &lt;span style="color:blue;"&gt;var&lt;/span&gt; lkup = crmForm.all.new_mylookup;&lt;br /&gt;   &lt;span style="color:blue;"&gt;if&lt;/span&gt;(lkup != &lt;span style="color:blue;"&gt;null&lt;/span&gt;)&lt;br /&gt;   {&lt;br /&gt;      &lt;span style="color:blue;"&gt;var&lt;/span&gt; arr = lkup.DataValue;&lt;br /&gt;      &lt;span style="color:blue;"&gt;if&lt;/span&gt;(arr.length &gt; 0)&lt;br /&gt;      {&lt;br /&gt;         &lt;span style="color:blue;"&gt;var&lt;/span&gt; objNameValues = arr[0];&lt;br /&gt;         &lt;span style="color:blue;"&gt;if&lt;/span&gt;(objNameValues != &lt;span style="color:blue;"&gt;null&lt;/span&gt;)&lt;br /&gt;         {&lt;br /&gt;            &lt;span style="color:blue;"&gt;alert&lt;/span&gt;(objNameValues.id);&lt;br /&gt;            &lt;span style="color:blue;"&gt;alert&lt;/span&gt;(objNameValues.name);&lt;br /&gt;            &lt;span style="color:blue;"&gt;alert&lt;/span&gt;(objNameValues.type);&lt;br /&gt;         }&lt;br /&gt;      }&lt;br /&gt;   }&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Code&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Setting values in a Lookup field&lt;/b&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;Example:  with crmForm.all.new_mylookup&lt;br /&gt;&lt;br /&gt;  &lt;span style="color:blue;"&gt;var&lt;/span&gt; objNameValues = &lt;span style="color:blue;"&gt;new&lt;/span&gt; Object();&lt;br /&gt;  objNameValues[&lt;span style="color: rgb(200, 13, 13);"&gt;"id"&lt;/span&gt;] = &lt;span style="color: rgb(200, 13, 13);"&gt;"{GUID}"&lt;/span&gt;;&lt;br /&gt;  objNameValues[&lt;span style="color: rgb(200, 13, 13);"&gt;"name"&lt;/span&gt;] = &lt;span style="color: rgb(200, 13, 13);"&gt;"Name"&lt;/span&gt;;&lt;br /&gt;  &lt;span style="color:green;"&gt;// Entity type code&lt;/span&gt;&lt;br /&gt;  objNameValues[&lt;span style="color: rgb(200, 13, 13);"&gt;"type"&lt;/span&gt;] = &lt;span style="color: rgb(200, 13, 13);"&gt;"TYPE CODE"&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;  crmForm.all.new_mylookup.DataValue =&lt;br /&gt;                         &lt;span style="color:blue;"&gt;new&lt;/span&gt; Array(objNameValues);&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;</description><link>http://www.codeapedia.com/2008/05/lookup-fields.html</link><author>noreply@blogger.com (CodeApedia)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8814077298454806308.post-9107253650073504135</guid><pubDate>Mon, 12 May 2008 17:45:00 +0000</pubDate><atom:updated>2008-09-15T19:47:55.582-07:00</atom:updated><title>Url Encoder/Decoder</title><description>&lt;div style="font-size:11.5px;margin-left:-10px"&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Description&lt;/u&gt;&lt;/b&gt;&lt;br/&gt;&lt;br/&gt;&lt;br /&gt;This articles shows you how to encode and decode posted form data from the browser to a webserver via "GET" method. Most people rely on the Javascript methods, escape and unescape, to format this data. The only problem is that they encode the space character as "%20" and treat "+" as a safe character. Copy and paste the code into an external javascript file called codeapedia.url.js&lt;br/&gt;&lt;br/&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Code&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style="color:green"&gt;&lt;br /&gt;/**&lt;br /&gt;* @projectDescription  Url encoder/decoder&lt;br /&gt;*&lt;br /&gt;* @author   Ryan Estes  http://www.codeapedia.com&lt;br /&gt;* @version  0.3&lt;br /&gt;*/&lt;/span&gt;&lt;br /&gt;&lt;span style="color:blue"&gt;var&lt;/span&gt; url = &lt;br /&gt;{&lt;br /&gt;    &lt;span style="color:green"&gt;/**&lt;br /&gt;    * Url encodes a string&lt;br /&gt;    * @return {string}&lt;br /&gt;    */&lt;/span&gt;&lt;br /&gt;    encode : &lt;span style="color:blue"&gt;function&lt;/span&gt;(pValue)&lt;br /&gt;    {&lt;br /&gt;       &lt;span style="color:blue"&gt;var&lt;/span&gt; str = escape(pValue);&lt;br /&gt;       str = str.replace(/\+/g,&lt;span style="color:#c80d0d"&gt;"%2B"&lt;/span&gt;);&lt;br /&gt;       str = str.replace(/%20/g,&lt;span style="color:#c80d0d"&gt;"+"&lt;/span&gt;);&lt;br /&gt;       &lt;span style="color:blue"&gt;return&lt;/span&gt; str;&lt;br /&gt;    },&lt;br /&gt;    &lt;span style="color:green"&gt;/**&lt;br /&gt;    * Decodes a url encoded string&lt;br /&gt;    * @return {string}&lt;br /&gt;    */&lt;/span&gt;&lt;br /&gt;    decode : &lt;span style="color:blue"&gt;function&lt;/span&gt;(pValue)&lt;br /&gt;    {&lt;br /&gt;       &lt;span style="color:blue"&gt;var&lt;/span&gt; str = pValue.replace(/\+/g,&lt;span style="color:#c80d0d"&gt;" "&lt;/span&gt;);&lt;br /&gt;       str = unescape(str);&lt;br /&gt;       &lt;span style="color:blue"&gt;return&lt;/span&gt; str;&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Example&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="color:blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#c80d0d"&gt;script&lt;/span&gt; &lt;span style="color:red"&gt;type&lt;/span&gt;&lt;span style="color:blue"&gt;="text/javascript"&lt;/span&gt; &lt;span style="color:red"&gt;language&lt;/span&gt;&lt;span style="color:blue"&gt;="javascript" &amp;gt;&lt;/span&gt;&lt;br /&gt;   &lt;span style="color:blue"&gt;var&lt;/span&gt; strUrl = &lt;span style="color:#c80d0d"&gt;"http://www.mydomain.com/?lang="&lt;/span&gt;;&lt;br /&gt;   strUrl = strUrl + url.encode(&lt;span style="color:#c80d0d"&gt;"ASP.NET 2.0,C# 2.0"&lt;/span&gt;);&lt;br /&gt;   alert(strUrl); &lt;br /&gt;   alert(url.decode(strUrl)); &lt;br /&gt;&lt;span style="color:blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#c80d0d"&gt;/script&lt;/span&gt;&lt;span style="color:blue"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;The above example above will alert &lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;http://www.mydomain.com/?lang=ASP.NET+2.0%2CC%23+2.0&lt;/li&gt;&lt;br /&gt;&lt;li&gt;http://www.mydomain.com/?lang=ASP.NET 2.0,C# 2.0&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;/div&gt;</description><link>http://www.codeapedia.com/2008/05/url-encoderdecoder.html</link><author>noreply@blogger.com (CodeApedia)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8814077298454806308.post-4824803803446954209</guid><pubDate>Mon, 12 May 2008 04:14:00 +0000</pubDate><atom:updated>2008-09-15T19:48:18.233-07:00</atom:updated><title>String</title><description>&lt;b&gt;&lt;u&gt;Description&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;   "codeapedia.string.js" prototypes the String class to add every &lt;br /&gt;day functionality and class properties.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Code&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;pre style="font-size:11px;margin-top:0px;"&gt;&lt;br /&gt;&lt;span style="color:#008000" &gt;&lt;br /&gt;/** &lt;br /&gt;* @projectDescription  String for Javascript Library&lt;br /&gt;*&lt;br /&gt;* @author Ryan Estes  http://www.codeapedia.com&lt;br /&gt;* @version 0.1 &lt;br /&gt;*/&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt;* Determines whether the specified string occurs in&lt;br /&gt;* within this string. &lt;br /&gt;* @return {Boolean} &lt;br /&gt;*/&lt;/span&gt;&lt;br /&gt;String.prototype.contains = &lt;span style="color:#3a90ff"&gt;function&lt;/span&gt;(pValue)&lt;br /&gt;{&lt;br /&gt;   &lt;span style="color:#3a90ff"&gt;return&lt;/span&gt; &lt;span style="color:#3a90ff"&gt;this&lt;/span&gt;.indexOf(pValue) != -1;&lt;br /&gt;}&lt;br /&gt;&lt;span style="color:#008000" &gt;&lt;br /&gt;/**&lt;br /&gt;* Determines whether the end of this string matches&lt;br /&gt;* the specified string.&lt;br /&gt;* @return {Boolean} &lt;br /&gt;*/&lt;/span&gt;&lt;br /&gt;String.prototype.endsWith = &lt;span style="color:#3a90ff"&gt;function&lt;/span&gt;(pValue,pBlnIgnoreCase)&lt;br /&gt;{&lt;br /&gt;   &lt;span style="color:#3a90ff"&gt;var&lt;/span&gt; strSource = &lt;span style="color:#3a90ff"&gt;this&lt;/span&gt;;&lt;br /&gt;   &lt;span style="color:#3a90ff"&gt;var&lt;/span&gt; strValue = pValue;&lt;br /&gt;   &lt;span style="color:#3a90ff"&gt;if&lt;/span&gt;(pBlnIgnoreCase)&lt;br /&gt;   {&lt;br /&gt;      strSource = strSource.toLowerCase();&lt;br /&gt;      strValue = strValue.toLowerCase();&lt;br /&gt;   }&lt;br /&gt;   &lt;span style="color:#3a90ff"&gt;return&lt;/span&gt; strSource.indexOf(strValue) == &lt;br /&gt;          (strSource.length - strValue.length);&lt;br /&gt;}&lt;br /&gt;&lt;span style="color:#008000" &gt;&lt;br /&gt;/**&lt;br /&gt;* Inserts a string within this string at the specified index&lt;br /&gt;* @return {String} &lt;br /&gt;*/&lt;/span&gt;&lt;br /&gt;String.prototype.insert = &lt;span style="color:#3a90ff"&gt;function&lt;/span&gt;(pValue,pIndex)&lt;br /&gt;{&lt;br /&gt;   &lt;span style="color:#3a90ff"&gt;if&lt;/span&gt;(pValue == &lt;span style="color:#3a90ff"&gt;null&lt;/span&gt;)&lt;br /&gt;   {&lt;br /&gt;      &lt;span style="color:#3a90ff"&gt;throw&lt;/span&gt; &lt;span style="color:#c80d0d" &gt;"Argument null exception"&lt;/span&gt;;&lt;br /&gt;   }&lt;br /&gt;   &lt;span style="color:#3a90ff"&gt;if&lt;/span&gt;(pIndex &lt; 0 || pIndex &gt;= &lt;span style="color:#3a90ff"&gt;this&lt;/span&gt;.length)&lt;br /&gt;   {&lt;br /&gt;      &lt;span style="color:#3a90ff"&gt;throw&lt;/span&gt; &lt;span style="color:#c80d0d" &gt;"Argument out of range exception"&lt;/span&gt;;&lt;br /&gt;   }&lt;br /&gt;   &lt;span style="color:#3a90ff"&gt;if&lt;/span&gt;(pIndex == 0)&lt;br /&gt;   {&lt;br /&gt;      &lt;span style="color:#3a90ff"&gt;return&lt;/span&gt; pValue + &lt;span style="color:#3a90ff"&gt;this&lt;/span&gt;;&lt;br /&gt;   }&lt;br /&gt;   &lt;span style="color:#3a90ff"&gt;else if&lt;/span&gt; (pIndex == &lt;span style="color:#3a90ff"&gt;this&lt;/span&gt;.length - 1)&lt;br /&gt;   {&lt;br /&gt;      &lt;span style="color:#3a90ff"&gt;return this&lt;/span&gt; + pValue;&lt;br /&gt;   }&lt;br /&gt;   &lt;span style="color:#3a90ff"&gt;else&lt;/span&gt;&lt;br /&gt;   {&lt;br /&gt;      &lt;span style="color:#3a90ff"&gt;var&lt;/span&gt; strStart = &lt;span style="color:#3a90ff"&gt;this&lt;/span&gt;.substring(0,pIndex);&lt;br /&gt;      &lt;span style="color:#3a90ff"&gt;var&lt;/span&gt; strEnd = &lt;span style="color:#3a90ff"&gt;this&lt;/span&gt;.substring(pIndex,&lt;span style="color:#3a90ff"&gt;this&lt;/span&gt;.length);&lt;br /&gt;      &lt;span style="color:#3a90ff"&gt;return&lt;/span&gt; strStart + pValue + strEnd;&lt;br /&gt;   }&lt;br /&gt;}&lt;br /&gt;&lt;span style="color:#008000" &gt;&lt;br /&gt;/**&lt;br /&gt;* Pads this string on the left with a specified number&lt;br /&gt;* of character strings.&lt;br /&gt;* @return {String} &lt;br /&gt;*/&lt;/span&gt;&lt;br /&gt;String.prototype.padLeft = &lt;span style="color:#3a90ff"&gt;function&lt;/span&gt;(pValue,pCount)&lt;br /&gt;{&lt;br /&gt;   &lt;span style="color:#3a90ff"&gt;var&lt;/span&gt; strLeft = &lt;span style="color:#c80d0d" &gt;""&lt;/span&gt;;&lt;br /&gt;   &lt;span style="color:#3a90ff"&gt;for&lt;/span&gt;(&lt;span style="color:#3a90ff"&gt;var&lt;/span&gt; i = 0; i &lt; pCount; i++)&lt;br /&gt;   {&lt;br /&gt;       strLeft += pValue;&lt;br /&gt;   }&lt;br /&gt;   &lt;span style="color:#3a90ff"&gt;return&lt;/span&gt; strLeft + &lt;span style="color:#3a90ff"&gt;this&lt;/span&gt;;&lt;br /&gt;}&lt;br /&gt;&lt;span style="color:#008000" &gt;&lt;br /&gt;/**&lt;br /&gt;* Pads this string on the right with a specified number&lt;br /&gt;* of character strings.&lt;br /&gt;* @return {String} &lt;br /&gt;*/&lt;/span&gt;&lt;br /&gt;String.prototype.padRight = &lt;span style="color:#3a90ff"&gt;function&lt;/span&gt;(pValue,pCount)&lt;br /&gt;{&lt;br /&gt;   &lt;span style="color:#3a90ff"&gt;var&lt;/span&gt; strRight = &lt;span style="color:#c80d0d" &gt;""&lt;/span&gt;;&lt;br /&gt;   &lt;span style="color:#3a90ff"&gt;for&lt;/span&gt;(&lt;span style="color:#3a90ff"&gt;var&lt;/span&gt; i = 0; i &lt; pCount; i++)&lt;br /&gt;   {&lt;br /&gt;       strRight += pValue;&lt;br /&gt;   }&lt;br /&gt;   &lt;span style="color:#3a90ff"&gt;return this&lt;/span&gt; + strRight;&lt;br /&gt;}&lt;br /&gt;&lt;span style="color:#008000" &gt;&lt;br /&gt;/**&lt;br /&gt;* Removes all carriage returns and new lines from this string&lt;br /&gt;* @return {String} &lt;br /&gt;*/&lt;/span&gt;&lt;br /&gt;String.prototype.removeLines = &lt;span style="color:#3a90ff"&gt;function&lt;/span&gt;() &lt;br /&gt;{&lt;br /&gt;   &lt;span style="color:#3a90ff"&gt;return this&lt;/span&gt;.replace(/(\n\r|\n|\r)/gm,&lt;span style="color:#c80d0d" &gt;""&lt;/span&gt;);&lt;br /&gt;}&lt;br /&gt;&lt;span style="color:#008000" &gt;&lt;br /&gt;/**&lt;br /&gt;* Determines whether the start of this string matches&lt;br /&gt;* the specified string.&lt;br /&gt;* @return {Boolean} &lt;br /&gt;*/&lt;/span&gt;&lt;br /&gt;String.prototype.startsWith = &lt;span style="color:#3a90ff"&gt;function&lt;/span&gt;(pValue,pBlnIgnoreCase)&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color:#3a90ff"&gt;var&lt;/span&gt; strSource = &lt;span style="color:#3a90ff"&gt;this&lt;/span&gt;;&lt;br /&gt;    &lt;span style="color:#3a90ff"&gt;var&lt;/span&gt; strValue = pValue;&lt;br /&gt;    &lt;span style="color:#3a90ff"&gt;if&lt;/span&gt;(pBlnIgnoreCase)&lt;br /&gt;    {&lt;br /&gt;       strSource = strSource.toLowerCase();&lt;br /&gt;       strValue = strValue.toLowerCase();&lt;br /&gt;    }&lt;br /&gt;    &lt;span style="color:#3a90ff"&gt;return&lt;/span&gt; strSource.indexOf(strValue) == 0;&lt;br /&gt;}&lt;br /&gt;&lt;span style="color:#008000" &gt;&lt;br /&gt;/**&lt;br /&gt;* Removes white space from this string&lt;br /&gt;* @return {String} &lt;br /&gt;*/&lt;/span&gt;&lt;br /&gt;String.prototype.trim = &lt;span style="color:#3a90ff"&gt;function&lt;/span&gt;()&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color:#3a90ff"&gt;return this&lt;/span&gt;.replace(/^\s+|\s+$/g,&lt;span style="color:#c80d0d" &gt;""&lt;/span&gt;);&lt;br /&gt;}&lt;br /&gt;&lt;span style="color:#008000" &gt;&lt;br /&gt;/**&lt;br /&gt;* Removes white space from the start of this string&lt;br /&gt;* @return {String} &lt;br /&gt;*/&lt;/span&gt;&lt;br /&gt;String.prototype.trimLeft = &lt;span style="color:#3a90ff"&gt;function&lt;/span&gt;()&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color:#3a90ff"&gt;return this&lt;/span&gt;.replace(/^\s+/,&lt;span style="color:#c80d0d" &gt;""&lt;/span&gt;);&lt;br /&gt;}&lt;br /&gt;&lt;span style="color:#008000" &gt;&lt;br /&gt;/**&lt;br /&gt;* Removes white space from the end of this string&lt;br /&gt;* @return {String} &lt;br /&gt;*/&lt;/span&gt;&lt;br /&gt;String.prototype.trimRight = &lt;span style="color:#3a90ff"&gt;function&lt;/span&gt;()&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color:#3a90ff"&gt;return this&lt;/span&gt;.replace(/\s+$/,&lt;span style="color:#c80d0d" &gt;""&lt;/span&gt;);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;var String = &lt;br /&gt;{   &lt;span style="color:#008000" &gt;&lt;br /&gt;    /**&lt;br /&gt;    * Determines whether two strings specified are equal &lt;br /&gt;    * @return {Boolean} &lt;br /&gt;    */&lt;/span&gt;&lt;br /&gt;    compare : &lt;span style="color:#3a90ff"&gt;function&lt;/span&gt;(pStringA,pStringB,pBlnIgnoreCase) {&lt;br /&gt;       &lt;span style="color:#3a90ff"&gt;var&lt;/span&gt; strA = pStringA;&lt;br /&gt;       &lt;span style="color:#3a90ff"&gt;var&lt;/span&gt; strB = pStringB;&lt;br /&gt;       &lt;span style="color:#3a90ff"&gt;if&lt;/span&gt;(pBlnIgnoreCase)&lt;br /&gt;       {&lt;br /&gt;          strA = strA.toLowerCase();&lt;br /&gt;          strB = strB.toLowerCase();&lt;br /&gt;       }&lt;br /&gt;       &lt;span style="color:#3a90ff"&gt;return&lt;/span&gt; strA == strB;&lt;br /&gt;    },&lt;br /&gt;    &lt;span style="color:#008000" &gt;&lt;br /&gt;    // Empty string&lt;/span&gt;&lt;br /&gt;    empty : &lt;span style="color:#c80d0d" &gt;""&lt;/span&gt;,&lt;br /&gt;    &lt;span style="color:#008000" &gt;&lt;br /&gt;    /**&lt;br /&gt;    * Determines whether the specified string is &lt;br /&gt;    * null or empty &lt;br /&gt;    * @return {Boolean} &lt;br /&gt;    */&lt;/span&gt;&lt;br /&gt;    isNullOrEmpty : &lt;span style="color:#3a90ff"&gt;function&lt;/span&gt; (pValue) {&lt;br /&gt;       &lt;span style="color:#3a90ff"&gt;return&lt;/span&gt;  pValue == &lt;span style="color:#3a90ff"&gt;null&lt;/span&gt; ||&lt;br /&gt;               pValue == String.empty;&lt;br /&gt;              &lt;br /&gt;    },&lt;br /&gt;    &lt;span style="color:#008000" &gt;&lt;br /&gt;    /**&lt;br /&gt;    * Converts the specified string to a floating value.&lt;br /&gt;    * Returns minimum float value if fails.&lt;br /&gt;    * @return {Float} &lt;br /&gt;    */&lt;/span&gt;&lt;br /&gt;    toFloat : &lt;span style="color:#3a90ff"&gt;function&lt;/span&gt;(pValue) {&lt;br /&gt;       &lt;span style="color:#3a90ff"&gt;var&lt;/span&gt; strValue = pValue;&lt;br /&gt;       &lt;span style="color:#3a90ff"&gt;if&lt;/span&gt;(pValue == &lt;span style="color:#3a90ff"&gt;null&lt;/span&gt; || isNaN(pValue))&lt;br /&gt;       {&lt;br /&gt;          strValue = &lt;span style="color:#c80d0d" &gt;"-3.402823E+38"&lt;/span&gt;;&lt;br /&gt;       }&lt;br /&gt;       &lt;span style="color:#3a90ff"&gt;return&lt;/span&gt; parseFloat(strValue);&lt;br /&gt;    },&lt;br /&gt;    &lt;span style="color:#008000" &gt;&lt;br /&gt;    /**&lt;br /&gt;    * Converts the specified string to an integer value.&lt;br /&gt;    * Returns minimum integer value if fails.&lt;br /&gt;    * @return (Int} &lt;br /&gt;    */&lt;/span&gt;&lt;br /&gt;    toInt : &lt;span style="color:#3a90ff"&gt;function&lt;/span&gt;(pValue) {&lt;br /&gt;       &lt;span style="color:#3a90ff"&gt;var&lt;/span&gt; strValue = pValue;&lt;br /&gt;       &lt;span style="color:#3a90ff"&gt;if&lt;/span&gt;(pValue == &lt;span style="color:#3a90ff"&gt;null&lt;/span&gt; || isNaN(pValue))&lt;br /&gt;       {&lt;br /&gt;          strValue = &lt;span style="color:#c80d0d" &gt;"-2147483648"&lt;/span&gt;;&lt;br /&gt;       }&lt;br /&gt;       &lt;span style="color:#3a90ff"&gt;return&lt;/span&gt; parseInt(strValue);&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Examples&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;pre style="font-size:11px;margin-left:-10px;margin-top:0px;"&gt;&lt;br /&gt;Code section below alerts "true".&lt;br /&gt;&lt;span style="color:#008000" &gt;// demonstrates contains&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#3a90ff"&gt;var&lt;/span&gt; str = &lt;span style="color:#c80d0d"&gt;"ASP.NET"&lt;/span&gt;;&lt;br /&gt;&lt;span style="color:#3a90ff"&gt;alert&lt;/span&gt;(str.contains(&lt;span style="color:#c80d0d"&gt;"."&lt;/span&gt;));&lt;br /&gt;&lt;br /&gt;Code section below alerts "true".&lt;br /&gt;&lt;span style="color:#008000" &gt;// demonstrates endsWith&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#3a90ff"&gt;alert&lt;/span&gt;(str.endsWith(&lt;span style="color:#c80d0d"&gt;"NET"&lt;/span&gt;,&lt;span style="color:#3a90ff"&gt;true&lt;/span&gt;));&lt;br /&gt;&lt;br /&gt;Code section below alerts "ASP.NET2.0".&lt;br /&gt;&lt;span style="color:#008000" &gt;// demonstrates insert&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#3a90ff"&gt;alert&lt;/span&gt;(str.insert(&lt;span style="color:#c80d0d"&gt;"2.0"&lt;/span&gt;,str.length - 1));&lt;br /&gt;&lt;br /&gt;Code section below alerts "BeginningASP.NET".&lt;br /&gt;&lt;span style="color:#008000" &gt;// demonstrates padLeft&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#3a90ff"&gt;alert&lt;/span&gt;(str.padLeft(&lt;span style="color:#c80d0d"&gt;"Beginning"&lt;/span&gt;,1));&lt;br /&gt;&lt;br /&gt;Code section below alerts "ASP.NET3.0".&lt;br /&gt;&lt;span style="color:#008000" &gt;// demonstrates padRight&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#3a90ff"&gt;alert&lt;/span&gt;(str.padRight(&lt;span style="color:#c80d0d"&gt;"3.0"&lt;/span&gt;,1));&lt;br /&gt;&lt;br /&gt;Code section below alerts "ASP.NET3.0".&lt;br /&gt;&lt;span style="color:#008000" &gt;// deomstrates removeLines&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#3a90ff"&gt;alert&lt;/span&gt;(&lt;span style="color:#c80d0d"&gt;"\r\n\r\nASP.NET\r3.0"&lt;/span&gt;.removeLines());&lt;br /&gt;&lt;br /&gt;Code section below alerts "false".&lt;br /&gt;&lt;span style="color:#008000" &gt;// demonstrates startsWith&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#3a90ff"&gt;alert&lt;/span&gt;(str.startsWith(&lt;span style="color:#c80d0d"&gt;"asp.net"&lt;/span&gt;));&lt;br /&gt;&lt;br /&gt;Code section below alerts "4","5","5" respectively.&lt;br /&gt;&lt;span style="color:#008000" &gt;// demonstrates trim functions&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#3a90ff"&gt;var&lt;/span&gt; str = &lt;span style="color:#c80d0d"&gt;" 2345 "&lt;/span&gt;;&lt;br /&gt;&lt;span style="color:#3a90ff"&gt;alert&lt;/span&gt;(str.trim().length);&lt;br /&gt;&lt;span style="color:#3a90ff"&gt;alert&lt;/span&gt;(str.trimLeft().length);&lt;br /&gt;&lt;span style="color:#3a90ff"&gt;alert&lt;/span&gt;(str.trimRight().length);&lt;br /&gt;&lt;br /&gt;Code section below alerts "true".&lt;br /&gt;&lt;span style="color:#008000" &gt;// demonstrates String.empty&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#3a90ff"&gt;alert&lt;/span&gt;(&lt;span style="color:#c80d0d"&gt;" "&lt;/span&gt;.trim() == String.empty);&lt;br /&gt;&lt;br /&gt;Code section below alerts "true".&lt;br /&gt;&lt;span style="color:#008000" &gt;// demonstrates String.compare&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#3a90ff"&gt;alert&lt;/span&gt;(String.compare(&lt;span style="color:#c80d0d"&gt;"A"&lt;/span&gt;,&lt;span style="color:#c80d0d"&gt;"a"&lt;/span&gt;,&lt;span style="color:#3a90ff"&gt;true&lt;/span&gt;));&lt;br /&gt;&lt;br /&gt;Code section below alerts "true".&lt;br /&gt;&lt;span style="color:#008000" &gt;// demonstrates String.isNullOrEmpty&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#3a90ff"&gt;alert&lt;/span&gt;(String.isNullOrEmpty(String.empty));&lt;br /&gt;&lt;br /&gt;Code section below alerts "-3.402823E+38".&lt;br /&gt;&lt;span style="color:#008000" &gt;// demonstrates String.toFloat&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#3a90ff"&gt;alert&lt;/span&gt;(String.toFloat(&lt;span style="color:#c80d0d"&gt;"ASP"&lt;/span&gt;));&lt;br /&gt;&lt;br /&gt;Code section below alerts "2".&lt;br /&gt;&lt;span style="color:#008000" &gt;// demonstrates String.toInt&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#3a90ff"&gt;alert&lt;/span&gt;(String.toInt(&lt;span style="color:#c80d0d"&gt;"2.0"&lt;/span&gt;));&lt;br /&gt;&lt;/pre&gt;</description><link>http://www.codeapedia.com/2008/05/string.html</link><author>noreply@blogger.com (CodeApedia)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8814077298454806308.post-6525962716872832794</guid><pubDate>Mon, 12 May 2008 02:40:00 +0000</pubDate><atom:updated>2008-05-13T20:30:55.574-07:00</atom:updated><title>C# Coding Practices Part 3</title><description>&lt;div style="font-size:11.5px" &gt;&lt;br /&gt;&lt;h3&gt;File Organization&lt;/h3&gt;&lt;br /&gt;Keep your classes/files short, divide your code up, and make your structures clear. If your class exceeds more than 2000 LOC consider breaking it up into partial classes. If you are running into this scenario on more than one occasion in the same library, you should take a step back and review the architecture of your code or get a second opinion. You are more than likely not taking advantage of the full benefits of the OOP language.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Directory Layout&lt;/h3&gt;&lt;br /&gt;The general rule of thumb is to create a directory for every namespace. Most importantly, your directory structure should reflect a compromise between the developers.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Indentation&lt;/h3&gt;&lt;br /&gt;When an expression will not fit on a single line, break it up to to the following:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;   &lt;li&gt;Break after a comma&lt;/li&gt;&lt;br /&gt;   &lt;li&gt;Break after an operator&lt;/li&gt;&lt;br /&gt;   &lt;li&gt;User higher-level breaks over lower level&lt;/li&gt;&lt;br /&gt;   &lt;li&gt;Align the new line with the beginning of the expression at the same level of the previous line&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;h3&gt;White Space&lt;/h3&gt;&lt;br /&gt;There should be a single space after a comma or a semicolon. &lt;br /&gt;&lt;br /&gt;Blank lines improve readability as they make blocks of code clear that are logically related. One blank line is generally used between variables. Two blank lines should be used between:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;   &lt;li&gt;Logical sections of a source file&lt;/li&gt;&lt;br /&gt;   &lt;li&gt;Class and interface definitions&lt;/li&gt;&lt;br /&gt;   &lt;li&gt;Methods&lt;/li&gt;&lt;br /&gt;   &lt;li&gt;Properties&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;Note: DO NOT use spaces to indent, use tabs.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Comments&lt;/h3&gt;&lt;br /&gt;Block commenting should be avoided. Use .net framework's XML formatted comments.&lt;br /&gt;You should not rely on comments to portray what your class is all about. Using these naming and style guidelines should do that for you.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Declarations/Initializations&lt;/h3&gt;&lt;br /&gt;Declarations should be avoided. You should initialize all variables to an intended value.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;     Example:  &lt;span style="color:blue"&gt;int&lt;/span&gt; iRadius = &lt;span style="background:yellow"&gt;-1&lt;/span&gt;;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;When initializing objects that implement the IDisposable interface, try to use the using statement so manged resources can be cleaned without relying on the Garbage compiler.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;     Example: &lt;br /&gt;      &lt;br /&gt;     &lt;span style="background:yellow"&gt;using&lt;/span&gt;(SqlConnection sqlcon = new SqlConnection())&lt;br /&gt;     {&lt;br /&gt;&lt;br /&gt;     }&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Class and Interface Declarations&lt;/h3&gt;&lt;br /&gt;When coding classes and interfaces, the following formatting rules should be followed:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;   &lt;li&gt;No space between a method name and the parenthesis "(" starting its parameter list.&lt;/li&gt;&lt;br /&gt;   &lt;li&gt;The opening brace "{" appears in the next line of the declaration statement.&lt;/li&gt;&lt;br /&gt;   &lt;li&gt;The closing brace "}" starts a line by itself indented to match its corresponding opening brace.&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;    Example:&lt;br /&gt;&lt;br /&gt;    public class SomeClass : SomeBaseClass&lt;span style="background:yellow"&gt;,&lt;/span&gt; IComparable&lt;br /&gt;    &lt;span style="background:yellow"&gt;{&lt;/span&gt;&lt;br /&gt;        public static void &lt;span style="background:yellow"&gt;SomeMethod&lt;/span&gt;()&lt;br /&gt;        {&lt;br /&gt;&lt;br /&gt;        }&lt;br /&gt;    &lt;span style="background:yellow"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Statements&lt;/h3&gt;&lt;br /&gt;&lt;b&gt;If, If-Else, etc...&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Each line should contain one statement.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;    Example:&lt;br /&gt;&lt;br /&gt;    &lt;span style="color:blue"&gt;if&lt;/span&gt;(condition)&lt;br /&gt;    {&lt;br /&gt;       &lt;span style="color:green"&gt;// do something&lt;/span&gt;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;span style="color:blue"&gt;if&lt;/span&gt;(condition)&lt;br /&gt;    {&lt;br /&gt;       &lt;span style="color:green"&gt;// do something&lt;/span&gt;&lt;br /&gt;    }&lt;br /&gt;    &lt;span style="color:blu