<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-118075691026449988</id><updated>2011-11-27T15:14:38.319-08:00</updated><category term='Visual Studio'/><category term='dll'/><category term='CSS'/><category term='Multi-Tiered Application'/><category term='How-To'/><category term='Data Types'/><category term='Java'/><category term='Blogger'/><category term='IE/FF Bug Resolutions'/><category term='Transfering Data'/><category term='ASP.NET'/><category term='ADO.NET'/><category term='Data Manipulation'/><category term='C#'/><category term='PHP'/><category term='Environment Setup'/><category term='Hosting'/><category term='php.ini'/><category term='Resources'/><category term='Bug Fix'/><category term='HTML'/><category term='Visual Basic'/><category term='Garbage Collection'/><category term='Crystal Reports XI'/><category term='.htaccess'/><category term='T-SQL'/><category term='JavaScript'/><category term='DreamHost'/><category term='UI Design'/><category term='Books'/><title type='text'>CMS Technotes</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://cmstechnotes.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/118075691026449988/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://cmstechnotes.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Gustafson</name><uri>http://www.blogger.com/profile/10548466163203170967</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>34</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-118075691026449988.post-8776175268794557642</id><published>2008-05-19T18:56:00.000-07:00</published><updated>2008-05-19T23:32:55.353-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Multi-Tiered Application'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='Bug Fix'/><title type='text'>Invalid postback or callback argument.</title><content type='html'>Getting an Invalid postback or callback argument can be a very frustrating issue.  Especially when most of the articles out there discuss potential issues that are often irrelevant.&lt;br /&gt;&lt;br /&gt;The error is caused because the page loading process gets interrupted. The interruption can be caused by an event being called prematurely. What then happens is that the salt hashes that protect your page from injection attacks are not generated and when the page goes to read them, they can't and throw the famous error.&lt;br /&gt;&lt;br /&gt;This error can also be thrown when content on your page get changed on the client end and no longer reflects the salt hashes created by the server)&lt;br /&gt;&lt;br /&gt;The following solution registers each control and has been reported to work with both regular asp.net sites as well as Ajax enabled sites:&lt;br /&gt;&lt;pre class="coloredcode"&gt; &lt;span class="kwd"&gt;protected override void&lt;/span&gt; Render(HtmlTextWriter writer)&lt;br /&gt;{&lt;br /&gt; Register(&lt;span class="kwd"&gt;this&lt;/span&gt;);&lt;br /&gt; &lt;span class="kwd"&gt;base&lt;/span&gt;.Render(writer);&lt;br /&gt;}&lt;br /&gt;&lt;span class="kwd"&gt;private void&lt;/span&gt; Register(Control ctrl)&lt;br /&gt;{&lt;br /&gt; &lt;span class="kwd"&gt;foreach&lt;/span&gt; (Control c &lt;span class="kwd"&gt;in&lt;/span&gt; ctrl.Controls)&lt;br /&gt;  Register(c);&lt;br /&gt; Page.ClientScript.RegisterForEventValidation(ctrl.UniqueID);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;I placed my copy of the above in my master page's code behind.&lt;br /&gt;&lt;/pre&gt; &lt;p&gt; Source: &lt;a href="http://forums.asp.net/t/922994.aspx?PageIndex=10"&gt;http://forums.asp.net/t/922994.aspx?PageIndex=10&lt;/a&gt;&lt;/p&gt;&lt;pre class="coloredcode"&gt;As a side note, I think this may have solved one of my issues, but the particular code I am currently testing has other issues...  which may just be that I am testing locally and running out of memory...???  will write more when I figure it out or if I have different results on my server.  I am currently working on a project that is rather data intensive!&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/118075691026449988-8776175268794557642?l=cmstechnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cmstechnotes.blogspot.com/feeds/8776175268794557642/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=118075691026449988&amp;postID=8776175268794557642' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/118075691026449988/posts/default/8776175268794557642'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/118075691026449988/posts/default/8776175268794557642'/><link rel='alternate' type='text/html' href='http://cmstechnotes.blogspot.com/2008/05/invalid-postback-or-callback-argument.html' title='Invalid postback or callback argument.'/><author><name>Gustafson</name><uri>http://www.blogger.com/profile/10548466163203170967</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-118075691026449988.post-2846439608940135060</id><published>2008-05-16T15:22:00.000-07:00</published><updated>2008-05-16T15:30:45.133-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Data Types'/><category scheme='http://www.blogger.com/atom/ns#' term='Multi-Tiered Application'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='Data Manipulation'/><category scheme='http://www.blogger.com/atom/ns#' term='HTML'/><category scheme='http://www.blogger.com/atom/ns#' term='How-To'/><title type='text'>filtering data in templatefields using a code behind method</title><content type='html'>I needed to some quick and dirty filtering in a gridview (to manage html input radio buttons).  After a few small headaches and attempts at different angles, I came up with the following.  The point to remember is that the Eval("variableFromObjectDataSource") is an object datatype by default and if it is going to be used as a parameter it needs to be typed as a string (as that is what my method requires)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The following line would go in a template field:&lt;/span&gt;&lt;br /&gt;  &lt;%# myFunction(Eval("variableFromObjectDataSource").ToString())  %&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;and then the following method in the code behind:&lt;/span&gt;&lt;br /&gt;  protected string myFunction(string Variable)&lt;br /&gt;  {&lt;br /&gt;          string returnString = String.Empty;&lt;br /&gt;          returnString = Variable;  // do something with the variable&lt;br /&gt;          return returnString;&lt;br /&gt;  }&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/118075691026449988-2846439608940135060?l=cmstechnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cmstechnotes.blogspot.com/feeds/2846439608940135060/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=118075691026449988&amp;postID=2846439608940135060' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/118075691026449988/posts/default/2846439608940135060'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/118075691026449988/posts/default/2846439608940135060'/><link rel='alternate' type='text/html' href='http://cmstechnotes.blogspot.com/2008/05/filtering-data-in-templatefields-using.html' title='filtering data in templatefields using a code behind method'/><author><name>Gustafson</name><uri>http://www.blogger.com/profile/10548466163203170967</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-118075691026449988.post-5979054490149135522</id><published>2008-04-30T10:06:00.001-07:00</published><updated>2008-04-30T10:09:14.035-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Transfering Data'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='Data Manipulation'/><title type='text'>A little note on setting Session Variables</title><content type='html'>If you get the following error message when trying to set a session variable...&lt;br /&gt;&lt;blockquote&gt;"An object reference is required for the nonstatic field, method, or property 'System.Web.UI.Page.Session.get'"&lt;/blockquote&gt; ...make sure that the method is not 'static'&lt;span class="searchTerm"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/118075691026449988-5979054490149135522?l=cmstechnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cmstechnotes.blogspot.com/feeds/5979054490149135522/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=118075691026449988&amp;postID=5979054490149135522' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/118075691026449988/posts/default/5979054490149135522'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/118075691026449988/posts/default/5979054490149135522'/><link rel='alternate' type='text/html' href='http://cmstechnotes.blogspot.com/2008/04/little-note-on-setting-session.html' title='A little note on setting Session Variables'/><author><name>Gustafson</name><uri>http://www.blogger.com/profile/10548466163203170967</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-118075691026449988.post-1607076755322506277</id><published>2008-04-17T10:12:00.000-07:00</published><updated>2008-04-17T10:34:52.356-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Transfering Data'/><category scheme='http://www.blogger.com/atom/ns#' term='Data Types'/><category scheme='http://www.blogger.com/atom/ns#' term='Multi-Tiered Application'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='Data Manipulation'/><category scheme='http://www.blogger.com/atom/ns#' term='How-To'/><title type='text'>Using custom methods to Populate DataGridViews</title><content type='html'>The software I am building uses gridviews to display lists of data.  Until recently I have been using a SqlDataSource and on occasion an ObjectDataSource to populate the data into these lists.&lt;br /&gt;&lt;br /&gt;My company wants to move to a tiered architecture (separation of the different layers to different physical machines)  To do this they are implementing a web service to get and set data.&lt;br /&gt;&lt;br /&gt;My task is to take that data and to integrate it with the existing application.  Shouldn't be too hard to do and it gives me the opportunity to really explore several different methods for manipulating data.&lt;br /&gt;&lt;br /&gt;One of my first tasks is being sure to understand their existing system which uses the DataGridView to display a simple rows of data.&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;I have simplified this GridView to reduce the clutter.  &lt;br /&gt;&lt;br /&gt;The key pieces to note in the GridView are:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;DataSourceID="ObjectDataSource1"&lt;/li&gt;&lt;ul&gt;&lt;li&gt;This is the object that goes out and retieves the  data you are seeking to display&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;AutoGenerateColumns="false"&lt;/li&gt;&lt;ul&gt;&lt;li&gt;If your object only shows the elements you want to show, then setting AutoGenerateColums to true will allow you to ignore setting up columns altogether.  However if you are seeking to only create a GridView with a subset of those colums this will need to be set to false&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;asp:BoundField column elements (note the DataField="LastName" attribute)&lt;/li&gt;&lt;ul&gt;&lt;li&gt;The ObjectDataSource will call a method that will return an ArrayList of an object. This object will need to be coded and the elements of that object can be entered into the DataField attribute to map them accordingly in the GridView.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;asp:gridview id="GridView1"&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;        runat="server" &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;        DataSourceID="ObjectDataSource1"  &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;        AutoGenerateColumns="false"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;    &lt;columns&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;            &lt;asp:boundfield datafield="LastName" headertext="Last Name"&gt;            &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;            &lt;asp:boundfield datafield="FirstName" headertext="First Name"&gt;            &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;    &lt;/columns&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;/asp:GridView&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The key pieces to note in the GridView are:&lt;br /&gt;&lt;ul style="color: rgb(0, 0, 0);"&gt;&lt;li&gt;TypeName="UserBL"&lt;/li&gt;&lt;ul&gt;&lt;li&gt;refers to the class name that contains the SelectMethod&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;SelectMethod="GetUsersName"&lt;/li&gt;&lt;ul&gt;&lt;li&gt;The method that will return an ArrayList of an object&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt; &lt;span style="color: rgb(51, 204, 0);"&gt;&lt;asp:objectdatasource&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;        ID="ObjectDataSource1" &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;        runat="server" &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;        SelectMethod="GetUsersName" &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;        TypeName="UserBL"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;&lt;/asp:ObjectDataSource&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;I will also be researching using an XML Data Source as that may simplify my processing...&lt;br /&gt;&lt;br /&gt;note that this post needs to be cleaned up and tested to ensure that blogger included all of the necessary code elements...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/118075691026449988-1607076755322506277?l=cmstechnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cmstechnotes.blogspot.com/feeds/1607076755322506277/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=118075691026449988&amp;postID=1607076755322506277' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/118075691026449988/posts/default/1607076755322506277'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/118075691026449988/posts/default/1607076755322506277'/><link rel='alternate' type='text/html' href='http://cmstechnotes.blogspot.com/2008/04/using-custom-methods-to-populate.html' title='Using custom methods to Populate DataGridViews'/><author><name>Gustafson</name><uri>http://www.blogger.com/profile/10548466163203170967</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-118075691026449988.post-5675234809761503682</id><published>2008-04-11T15:36:00.000-07:00</published><updated>2008-04-11T15:50:01.813-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='Resources'/><title type='text'>DropDownList resources</title><content type='html'>The following lists several code samples on loading data into a dropdownlist control&lt;br /&gt;http://www.devcity.net/Articles/68/1/aspnet_dropdown.aspx&lt;br /&gt;&lt;br /&gt;The following article menthions pass-through attributes.&lt;br /&gt;http://www.ironspeed.com/articles/Using%20Pass%20Through%20Attributes%20in%20Generated%20Applications/Article.aspx&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/118075691026449988-5675234809761503682?l=cmstechnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cmstechnotes.blogspot.com/feeds/5675234809761503682/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=118075691026449988&amp;postID=5675234809761503682' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/118075691026449988/posts/default/5675234809761503682'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/118075691026449988/posts/default/5675234809761503682'/><link rel='alternate' type='text/html' href='http://cmstechnotes.blogspot.com/2008/04/dropdownlist-resources.html' title='DropDownList resources'/><author><name>Gustafson</name><uri>http://www.blogger.com/profile/10548466163203170967</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-118075691026449988.post-5723882490410398715</id><published>2008-04-07T23:06:00.000-07:00</published><updated>2008-04-07T23:23:27.014-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='UI Design'/><category scheme='http://www.blogger.com/atom/ns#' term='CSS'/><category scheme='http://www.blogger.com/atom/ns#' term='HTML'/><category scheme='http://www.blogger.com/atom/ns#' term='How-To'/><category scheme='http://www.blogger.com/atom/ns#' term='Bug Fix'/><title type='text'>Why forms get different color backgrounds</title><content type='html'>Ever wonder why online forms sometimes have some text boxes with a white background and others with yellow backgrounds...   &lt;br /&gt;&lt;br /&gt;This has been driving me batty and has been something I had given up on as a stupid fact of life. &lt;br /&gt;Tonight I found my answer.  Some toolbars offer auto fill tools to help reduce the effort of filling in online forms.  To signal which forms they work with they change the background color and appearance of the form.&lt;br /&gt;&lt;br /&gt;I happen to use Google Toolbar (which I love) but don't use the auto fill feature.  After trying to a few things I realized that only specific text boxes where being highlighted.&lt;br /&gt;&lt;br /&gt;Resolution was simple enough, I turned off auto fill and that was the end of it.  now my form looks right... well, it looks right for me, but not for anyone else using the auto fill tools. &lt;br /&gt;&lt;br /&gt;Some people like the online tools to block adds and to alter the page after the fact.   As a designer I don't care for them.  Those people fall into the category of users who refuse to use cookies and/or javascript.  Generally speaking I don't design my pages for them.  I do use nice css and html standards that are still viewable/readable by just about anyone, but that is more an seo rational. That and designing is easier when there are some standards to it.&lt;br /&gt;&lt;br /&gt;It is possible to be overly paranoid.  Really, being cautious and educated (with good antivirus software and regular backups) and you should be safe from most online threats.&lt;br /&gt;&lt;br /&gt;There is a reason I payout a fair sum every few years for norton system works.  It has saved my computer several times over.  The software may be rather bloated but I can spare the extra resources for piece of mind.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/118075691026449988-5723882490410398715?l=cmstechnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cmstechnotes.blogspot.com/feeds/5723882490410398715/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=118075691026449988&amp;postID=5723882490410398715' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/118075691026449988/posts/default/5723882490410398715'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/118075691026449988/posts/default/5723882490410398715'/><link rel='alternate' type='text/html' href='http://cmstechnotes.blogspot.com/2008/04/why-forms-get-different-color.html' title='Why forms get different color backgrounds'/><author><name>Gustafson</name><uri>http://www.blogger.com/profile/10548466163203170967</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-118075691026449988.post-7771202560765642323</id><published>2008-04-06T18:19:00.000-07:00</published><updated>2008-04-11T15:50:47.840-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ADO.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='Multi-Tiered Application'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='T-SQL'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='Resources'/><category scheme='http://www.blogger.com/atom/ns#' term='Data Manipulation'/><category scheme='http://www.blogger.com/atom/ns#' term='How-To'/><title type='text'>Using TableAdapters with transactions</title><content type='html'>Using TableAdapters with transactions has been a subject that I have been interested in for some time now.  I accidentally ran across this earlier today when I was research my last post and although I haven't had a chance to test this one out yet, it appears to be a god quality article.&lt;br /&gt;&lt;br /&gt;go to the following page for more information.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.codeproject.com/KB/database/TableAdapter-Transaction.aspx"&gt;http://www.codeproject.com/KB/database/TableAdapter-Transaction.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Once I have a chance to go through this I will blog more on the subject.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/118075691026449988-7771202560765642323?l=cmstechnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cmstechnotes.blogspot.com/feeds/7771202560765642323/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=118075691026449988&amp;postID=7771202560765642323' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/118075691026449988/posts/default/7771202560765642323'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/118075691026449988/posts/default/7771202560765642323'/><link rel='alternate' type='text/html' href='http://cmstechnotes.blogspot.com/2008/04/using-tableadapters-with-transactions.html' title='Using TableAdapters with transactions'/><author><name>Gustafson</name><uri>http://www.blogger.com/profile/10548466163203170967</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-118075691026449988.post-8151916919177446101</id><published>2008-04-06T16:58:00.000-07:00</published><updated>2008-04-06T17:05:28.005-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Multi-Tiered Application'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='T-SQL'/><category scheme='http://www.blogger.com/atom/ns#' term='Resources'/><category scheme='http://www.blogger.com/atom/ns#' term='Data Manipulation'/><category scheme='http://www.blogger.com/atom/ns#' term='How-To'/><title type='text'>SCOPE_IDENTITY in TableAdapters</title><content type='html'>In your .xsd file, add an Insert statement which would insert then grab the primary key for use in another table&lt;br /&gt;&lt;br /&gt; &lt;b&gt;INSERT INTO Table1 (col1, col2) VALUES (@col1, @col2);&lt;br /&gt; SELECT SCOPE_IDENTITY();&lt;/b&gt;&lt;br /&gt;&lt;br /&gt; Then in the Visual Studio .xsd file select that insert query and go to properties and change the ExecuteMode to Scalar&lt;br /&gt;&lt;br /&gt;...normally calling the method YourTableAdapter.Insert(...) will return an integer equalling the number of rows effected...&lt;br /&gt;&lt;br /&gt;source for the solution documented in this post:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://erikaday.com/programming.html"&gt;http://erikaday.com/programming.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/118075691026449988-8151916919177446101?l=cmstechnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cmstechnotes.blogspot.com/feeds/8151916919177446101/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=118075691026449988&amp;postID=8151916919177446101' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/118075691026449988/posts/default/8151916919177446101'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/118075691026449988/posts/default/8151916919177446101'/><link rel='alternate' type='text/html' href='http://cmstechnotes.blogspot.com/2008/04/scopeidentity-in-tableadapters.html' title='SCOPE_IDENTITY in TableAdapters'/><author><name>Gustafson</name><uri>http://www.blogger.com/profile/10548466163203170967</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-118075691026449988.post-4212309636675563901</id><published>2008-03-26T10:59:00.000-07:00</published><updated>2008-03-26T11:01:26.199-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Garbage Collection'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='Resources'/><title type='text'>Article on Exception Handling</title><content type='html'>&lt;span style="font-weight: bold;"&gt;The following article appears to be well written and informative&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a href="http://www.yale.edu/pclt/exceptions.htm"&gt;Exception Handling in Java and C#&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/118075691026449988-4212309636675563901?l=cmstechnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cmstechnotes.blogspot.com/feeds/4212309636675563901/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=118075691026449988&amp;postID=4212309636675563901' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/118075691026449988/posts/default/4212309636675563901'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/118075691026449988/posts/default/4212309636675563901'/><link rel='alternate' type='text/html' href='http://cmstechnotes.blogspot.com/2008/03/article-on-exception-handling.html' title='Article on Exception Handling'/><author><name>Gustafson</name><uri>http://www.blogger.com/profile/10548466163203170967</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-118075691026449988.post-8905900876319198774</id><published>2008-03-24T09:23:00.000-07:00</published><updated>2008-03-24T09:34:38.747-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Environment Setup'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='dll'/><category scheme='http://www.blogger.com/atom/ns#' term='Crystal Reports XI'/><title type='text'>Crystal Reports .NET DLL Versioning Issue</title><content type='html'>Crystal Reports .NET is very sensitive that you use all the same dll versions. &lt;br /&gt;&lt;br /&gt;Whats more is that each version means soemthing...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Crystal Reports 11&lt;br /&gt;Version=11.5.3300.0   .NET 1.1    (pre VS 2005?)&lt;br /&gt;&lt;br /&gt;Crystal Reports 11 r2&lt;br /&gt;Version=11.5.3700.0    .NET 2.0    Visual Studio 2005+&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Visual Studtio 2005/8(?) Professional&lt;br /&gt;Version=10.5.3700.0    .NET 2.0    Visual Studio 2005+&lt;br /&gt;&lt;br /&gt;Crystal Reports 2008&lt;br /&gt;Version=12....    .NET 2.0    Visual Studio 2008(?)&lt;br /&gt;&lt;br /&gt;I don't know exactly which versions do what as I haven't been able to play to much with everything beyond the scope of what I have needed for my current project. which uses version 11.5.3700.0&lt;br /&gt;&lt;br /&gt;The following is an important distinction:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;.3300.  is .NET 1.1 and .3700. is .NET 2.0 &lt;/span&gt; &lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;With that said, each time I ventured into one of the other dlls I discovered that all of them had slightly different .NET code which ment a lot of rewriting on my part :-( &lt;br /&gt;&lt;br /&gt;There are distinct upgrade paths so keep that in mind.  there are several articles out there on that subject.  Basically know that the dlls that ship with Crystal Reports are going to be better and will offer more functionality than those that ship with the various versions of Visual Studio.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/118075691026449988-8905900876319198774?l=cmstechnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cmstechnotes.blogspot.com/feeds/8905900876319198774/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=118075691026449988&amp;postID=8905900876319198774' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/118075691026449988/posts/default/8905900876319198774'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/118075691026449988/posts/default/8905900876319198774'/><link rel='alternate' type='text/html' href='http://cmstechnotes.blogspot.com/2008/03/crystal-reports-net-dll-versioning.html' title='Crystal Reports .NET DLL Versioning Issue'/><author><name>Gustafson</name><uri>http://www.blogger.com/profile/10548466163203170967</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-118075691026449988.post-1928583274645556698</id><published>2008-03-24T09:09:00.000-07:00</published><updated>2008-03-24T09:23:33.446-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Garbage Collection'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='How-To'/><category scheme='http://www.blogger.com/atom/ns#' term='Bug Fix'/><category scheme='http://www.blogger.com/atom/ns#' term='Crystal Reports XI'/><title type='text'>Crystal Reports .NET Error: "Load Report Failed"</title><content type='html'>When dealing with CrystalReports from the codebehind, Garbage Collection needs to be handled as there is a known issue where after opening the document 25-30, the application will error out and will through an exception stating that the report path is invalid.&lt;br /&gt;&lt;br /&gt;This issue is infuriating when out of the blue things stop working minutes before a product demo to a customer (murphies law I swear!)&lt;br /&gt;&lt;br /&gt;Fortunately I have cool customers.  I found the solution midway through the comments in the following post. &lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://aspadvice.com/blogs/rjdudley/archive/2005/05/18/2591.aspx"&gt;Crystal Reports .NET Error: "Load Report Failed"&lt;/a&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://aspadvice.com/blogs/rjdudley/archive/2005/05/18/2591.aspx#25315"&gt;the post that mentions garbage collection...&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;The post mentions calling the Garbage Collection stuff during the page unload event, however since I am running this in the background for something that will never see a monitor, I will be experimenting with the "using" statement.  More on that later once I get it to work.  This is my first go round with Garbage Collection, so I am looking forward to getting this hammered out.&lt;br /&gt;&lt;br /&gt;The following is the sample C# code that worked in my document. Note that I am using dll Version 11.5.3700.0&lt;br /&gt;&lt;br /&gt;    private static ReportDocument reportDocument = new ReportDocument();&lt;br /&gt;&lt;br /&gt;    // Code that handles reportDocument&lt;br /&gt;&lt;br /&gt;    protected void Page_Unload(object sender, EventArgs e)&lt;br /&gt;    {&lt;br /&gt;        reportDocument.Close();&lt;br /&gt;        reportDocument.Dispose();&lt;br /&gt;        GC.Collect();&lt;br /&gt;    }&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/118075691026449988-1928583274645556698?l=cmstechnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cmstechnotes.blogspot.com/feeds/1928583274645556698/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=118075691026449988&amp;postID=1928583274645556698' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/118075691026449988/posts/default/1928583274645556698'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/118075691026449988/posts/default/1928583274645556698'/><link rel='alternate' type='text/html' href='http://cmstechnotes.blogspot.com/2008/03/crystal-reports-net-error-load-report.html' title='Crystal Reports .NET Error: &quot;Load Report Failed&quot;'/><author><name>Gustafson</name><uri>http://www.blogger.com/profile/10548466163203170967</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-118075691026449988.post-4356679416682810245</id><published>2008-03-17T23:26:00.000-07:00</published><updated>2008-03-18T00:34:02.882-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Transfering Data'/><category scheme='http://www.blogger.com/atom/ns#' term='Multi-Tiered Application'/><category scheme='http://www.blogger.com/atom/ns#' term='UI Design'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='Data Manipulation'/><category scheme='http://www.blogger.com/atom/ns#' term='How-To'/><title type='text'>Loading Data into a DropDownList Using DataTables and a Table Adapter</title><content type='html'>This is another variation of loading data into a DropDownList.  This time I am using the same dataTable method as my earlier example, however instead of using an array as my data source, I am using another DataTable; One that originates from a TableAdapter from one of the .xsd files in my DAL.&lt;br /&gt;&lt;br /&gt;I imagine there is a more streamlined variation of this (why use two DataTables if I don't need to...) but this happens to work just fine for me.&lt;br /&gt;&lt;br /&gt;      DataTable itemListStates = new DataTable();&lt;br /&gt;      itemListStates.Columns.Add(new DataColumn("Value", typeof(int)));&lt;br /&gt;      itemListStates.Columns.Add(new DataColumn("Text", typeof(string)));&lt;br /&gt;&lt;br /&gt;      DataRow listItemState;&lt;br /&gt;      listItemState = itemListStates.NewRow();&lt;br /&gt;      listItemState[0] = -1;&lt;br /&gt;      listItemState[1] = "Select a State";&lt;br /&gt;      itemListStates.Rows.Add(listItemState);&lt;br /&gt;&lt;br /&gt;      StatesTableAdapter statesAdapter = new StatesTableAdapter();&lt;br /&gt;      Directory.StatesDataTable states;&lt;br /&gt;      states = statesAdapter.GetData();&lt;br /&gt;      foreach (Directory.StatesRow statesRow in states)&lt;br /&gt;      {&lt;br /&gt;          listItemState = itemListStates.NewRow();&lt;br /&gt;          listItemState[0] = statesRow.StateAbbreviation;&lt;br /&gt;          listItemState[1] = statesRow.StateName;&lt;br /&gt;          itemListStates.Rows.Add(listItemState);&lt;br /&gt;      }&lt;br /&gt;&lt;br /&gt;      ddlState.DataSource = itemListStates;&lt;br /&gt;      ddlState.DataValueField = "Value";&lt;br /&gt;      ddlState.DataTextField = "Text";&lt;br /&gt;      ddlState.DataBind();&lt;br /&gt;      ddlState.SelectedIndex = -1;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/118075691026449988-4356679416682810245?l=cmstechnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cmstechnotes.blogspot.com/feeds/4356679416682810245/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=118075691026449988&amp;postID=4356679416682810245' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/118075691026449988/posts/default/4356679416682810245'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/118075691026449988/posts/default/4356679416682810245'/><link rel='alternate' type='text/html' href='http://cmstechnotes.blogspot.com/2008/03/loading-data-into-dropdownlist-using.html' title='Loading Data into a DropDownList Using DataTables and a Table Adapter'/><author><name>Gustafson</name><uri>http://www.blogger.com/profile/10548466163203170967</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-118075691026449988.post-8998663798854962581</id><published>2008-03-17T16:05:00.001-07:00</published><updated>2008-03-17T16:09:30.946-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='Data Manipulation'/><category scheme='http://www.blogger.com/atom/ns#' term='How-To'/><title type='text'>Loading data into a DropDownMenu from the codebehind</title><content type='html'>The following control loads the data belonging to a DropDownList control "ddDOBMonth" using a DataTable, a for statement, and two arrays: one for the month text and one for their values.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;DataTable itemListMonths = new DataTable();&lt;br /&gt;       itemListMonths.Columns.Add(new DataColumn("Value", typeof(int)));&lt;br /&gt;       itemListMonths.Columns.Add(new DataColumn("Month", typeof(string)));&lt;br /&gt;&lt;br /&gt;       DataRow listItemMonth;&lt;br /&gt;       listItemMonth = itemListMonths.NewRow();&lt;br /&gt;       listItemMonth[0] = -1;&lt;br /&gt;       listItemMonth[1] = "Month";&lt;br /&gt;       itemListMonths.Rows.Add(listItemMonth);&lt;br /&gt;&lt;br /&gt;       string[] a_monthText = { "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" };&lt;br /&gt;       string[] a_monthValues = { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12" };&lt;br /&gt;&lt;br /&gt;       for (int Value = 0; Value &lt; 12; Value++)&lt;br /&gt;       {&lt;br /&gt;           listItemMonth = itemListMonths.NewRow();&lt;br /&gt;           listItemMonth[0] = a_monthValues[Value];&lt;br /&gt;           listItemMonth[1] = a_monthText[Value];&lt;br /&gt;           itemListMonths.Rows.Add(listItemMonth);&lt;br /&gt;       }&lt;br /&gt;&lt;br /&gt;       ddDOBMonth.DataSource = itemListMonths;&lt;br /&gt;       ddDOBMonth.DataValueField = "Value";&lt;br /&gt;       ddDOBMonth.DataTextField = "Month";&lt;br /&gt;       ddDOBMonth.DataBind();&lt;br /&gt;       ddDOBMonth.SelectedIndex = -1;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/118075691026449988-8998663798854962581?l=cmstechnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cmstechnotes.blogspot.com/feeds/8998663798854962581/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=118075691026449988&amp;postID=8998663798854962581' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/118075691026449988/posts/default/8998663798854962581'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/118075691026449988/posts/default/8998663798854962581'/><link rel='alternate' type='text/html' href='http://cmstechnotes.blogspot.com/2008/03/loading-data-into-dropdownmenu-from.html' title='Loading data into a DropDownMenu from the codebehind'/><author><name>Gustafson</name><uri>http://www.blogger.com/profile/10548466163203170967</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-118075691026449988.post-3258776804627410968</id><published>2008-03-12T14:18:00.000-07:00</published><updated>2008-03-12T16:30:45.000-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Environment Setup'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='Resources'/><category scheme='http://www.blogger.com/atom/ns#' term='How-To'/><category scheme='http://www.blogger.com/atom/ns#' term='Crystal Reports XI'/><title type='text'>Adventure in Crystal Reports</title><content type='html'>I have been tasked to set up our web application to print Crystal Reports .rpt documents to our network printers.&lt;br /&gt;&lt;br /&gt;This is my first experience in CR.NET and I am discovering that it is a major source of headaches and frustration for developers everywhere.  (as evidenced by the huge amount confused forum posts)&lt;br /&gt;&lt;br /&gt;I am going to blog about my progress here, so as to keep tabs on everything.  As such this will be an ongoing post.&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;span style="font-weight: bold;"&gt;Environment Set Up&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This is probably the biggest source of ambiguity and cause of confusion and mysterious problems concerning development with Visual Studio and Crystal Reports.&lt;br /&gt;&lt;br /&gt;One issue is that there are several different .dll versions for crystal reports and most of them are not cross compatible.  While it is possible to set up a section in the web.config to default on one version or another&lt;span style="font-size:78%;"&gt; [&lt;a href="http://tim.mackey.ie/CommentView,guid,be13ff65-9d01-4ae3-b974-961cdd7ce180.aspx#commentstart"&gt;source&lt;/a&gt;]&lt;/span&gt;.  My opinion is moving more and more towards simply ensuring everything is set up correctly in the first place. That means only having one version, the correct version...&lt;br /&gt;&lt;br /&gt;The following article discusses &lt;a href="http://recluze.wordpress.com/2007/09/05/deploying-visual-studionet-crystal-reports-projects/"&gt;Deploying Visual Studio.net + Crystal Reports Projects&lt;/a&gt;  and is really a step by step guide for setting up .NET 2.0 with Crystal Reports.   The article refers to &lt;span style="font-style: italic;"&gt;cr_net_2005_mergemodules_mlb_x86.zip&lt;/span&gt;, which contains a readme called &lt;span style="font-style: italic;"&gt;CR Deployment using .NET Framework 2.0 Merge Modules.doc.  &lt;/span&gt;This file contains directions on how to set up various servers.&lt;br /&gt;&lt;br /&gt;msdn has the following on setting up the web.config file:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;http://msdn2.microsoft.com/en-us/library/bb971177.aspx&lt;/li&gt;&lt;/ul&gt;Which if you look at the document navigation is one of many articles on using Crystal Reports with both VS2005/.NET 2.0 and VS2008/.NET3.5&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;...lots more to come on this article...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/118075691026449988-3258776804627410968?l=cmstechnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cmstechnotes.blogspot.com/feeds/3258776804627410968/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=118075691026449988&amp;postID=3258776804627410968' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/118075691026449988/posts/default/3258776804627410968'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/118075691026449988/posts/default/3258776804627410968'/><link rel='alternate' type='text/html' href='http://cmstechnotes.blogspot.com/2008/03/adventure-in-crystal-reports.html' title='Adventure in Crystal Reports'/><author><name>Gustafson</name><uri>http://www.blogger.com/profile/10548466163203170967</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-118075691026449988.post-1894124774264152359</id><published>2008-03-09T19:34:00.000-07:00</published><updated>2008-03-11T14:35:03.386-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Transfering Data'/><category scheme='http://www.blogger.com/atom/ns#' term='ADO.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='T-SQL'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='Data Manipulation'/><category scheme='http://www.blogger.com/atom/ns#' term='How-To'/><title type='text'>The SqlConnection Object</title><content type='html'>I found a great series on interacting with databases and will be blogging about various aspects that are covered and how they related to what I am currently doing and what I will be doing soon.  The first of these articles follows.  I will probably update this post as I read the rest of them.&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;&lt;b&gt;&lt;b&gt;Lesson 02: The SqlConnection Object&lt;/b&gt;&lt;/b&gt;&lt;/h4&gt;&lt;a href="http://www.csharp-station.com/Tutorials/AdoDotNet/Lesson02.aspx"&gt;http://www.csharp-station.com/Tutorials/AdoDotNet/Lesson02.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/118075691026449988-1894124774264152359?l=cmstechnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cmstechnotes.blogspot.com/feeds/1894124774264152359/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=118075691026449988&amp;postID=1894124774264152359' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/118075691026449988/posts/default/1894124774264152359'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/118075691026449988/posts/default/1894124774264152359'/><link rel='alternate' type='text/html' href='http://cmstechnotes.blogspot.com/2008/03/sqlconnection-object.html' title='The SqlConnection Object'/><author><name>Gustafson</name><uri>http://www.blogger.com/profile/10548466163203170967</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-118075691026449988.post-3680703946945979715</id><published>2008-03-06T16:47:00.000-08:00</published><updated>2008-03-06T16:59:37.051-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JavaScript'/><category scheme='http://www.blogger.com/atom/ns#' term='UI Design'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='How-To'/><title type='text'>Changing Focus() Using JavaScript and C#</title><content type='html'>The following bit of code lets you use a combination of JavaScript and Code behind C# to set up a button to reset the pages focus. If the desired focus location is not visible the page posts back and the location is set to visible. otherwise the JavaScript makes a smooth jump to the desired focus location without the post back.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Scenario 1&lt;/span&gt;&lt;br /&gt;If the destination control is not visible the JavaScript fails and the OnClick event fires&lt;br /&gt;&lt;br /&gt;The OnClick function will then set the destination control's visible property to true and calls the focus() method.&lt;br /&gt;&lt;br /&gt;Note that the focus method can only be called on certain controls [&lt;a href="http://msdn2.microsoft.com/en-us/library/ms178232.aspx"&gt;see this msdn articls&lt;/a&gt;]&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Scenario 2&lt;/span&gt;&lt;br /&gt;If the destination control is visible, the JavaScript runs and sets the focus WITHOUT a postback&lt;br /&gt;&lt;br /&gt;The OnClick event &lt;span style="font-style: italic;"&gt;never &lt;/span&gt;fires.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;                   &lt;br /&gt;&lt;span style="font-weight: bold;"&gt;How to set up the JavaScript from the code behind (C# + JavaScript)&lt;/span&gt;&lt;br /&gt;btnHold.OnClientClick = "document.getElementById('" + txtHoldReason.ClientID + "').focus();";&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;note: I have left out the C# OnClick event code.  If you need this, send me an email or comment on this post and I will add it.  &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/118075691026449988-3680703946945979715?l=cmstechnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cmstechnotes.blogspot.com/feeds/3680703946945979715/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=118075691026449988&amp;postID=3680703946945979715' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/118075691026449988/posts/default/3680703946945979715'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/118075691026449988/posts/default/3680703946945979715'/><link rel='alternate' type='text/html' href='http://cmstechnotes.blogspot.com/2008/03/changing-focus-using-javascript-and-c.html' title='Changing Focus() Using JavaScript and C#'/><author><name>Gustafson</name><uri>http://www.blogger.com/profile/10548466163203170967</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-118075691026449988.post-2331643989989646726</id><published>2008-03-06T10:09:00.000-08:00</published><updated>2008-03-06T10:13:57.640-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='Data Manipulation'/><title type='text'>adding new line characters...</title><content type='html'>When concatenating strings for say a incrementing message dialog, it is often necessary to add new lines characters.  One way is to add&lt;br /&gt;however this only works if you are displaying the results in html.&lt;br /&gt;&lt;br /&gt;I believe that the following will show up as a new line in the code behind as well, however I still need to confirm this...&lt;br /&gt;&lt;ul&gt;&lt;li&gt;System.Environment.NewLine&lt;/li&gt;&lt;/ul&gt;example of use:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;txtReason.Text + System.Environment.NewLine + System.Environment.NewLine + txtResolution.Text.Trim()&lt;/li&gt;&lt;/ul&gt;I have also heard of language specific representations of the /n character.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/118075691026449988-2331643989989646726?l=cmstechnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cmstechnotes.blogspot.com/feeds/2331643989989646726/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=118075691026449988&amp;postID=2331643989989646726' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/118075691026449988/posts/default/2331643989989646726'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/118075691026449988/posts/default/2331643989989646726'/><link rel='alternate' type='text/html' href='http://cmstechnotes.blogspot.com/2008/03/adding-new-line-characters.html' title='adding new line characters...'/><author><name>Gustafson</name><uri>http://www.blogger.com/profile/10548466163203170967</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-118075691026449988.post-3514970360036108962</id><published>2008-02-25T08:38:00.001-08:00</published><updated>2008-02-25T08:45:21.658-08:00</updated><title type='text'>Commenting Tool for Visual Studio</title><content type='html'>One of the tools that Visual Studio provides is a system to keep track of comments in your code.&lt;br /&gt;&lt;br /&gt;The Task List/Comments Manager&lt;br /&gt;&lt;br /&gt;The Task List portion allows you to create tasks within the panel for things that effect your project as a whole.  You can set the priority of the task and if it has been completed or not.&lt;br /&gt;&lt;br /&gt;The Comments Manager portion acts a little differently.  You can't set comments directly in the panel. You can place comments directly in your code and if the comment starts with the proper keywords, (TODO, HACK, UNDONE, or UnresolvedMergeConflict) then it will automatically appear in the panel.&lt;br /&gt;&lt;br /&gt;To edit the panel and to add more keywords, go to Tools/Options - Environment - Task List&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/118075691026449988-3514970360036108962?l=cmstechnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cmstechnotes.blogspot.com/feeds/3514970360036108962/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=118075691026449988&amp;postID=3514970360036108962' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/118075691026449988/posts/default/3514970360036108962'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/118075691026449988/posts/default/3514970360036108962'/><link rel='alternate' type='text/html' href='http://cmstechnotes.blogspot.com/2008/02/commenting-tool-for-visual-studio.html' title='Commenting Tool for Visual Studio'/><author><name>Gustafson</name><uri>http://www.blogger.com/profile/10548466163203170967</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-118075691026449988.post-106616093646368137</id><published>2008-02-24T18:24:00.001-08:00</published><updated>2008-02-24T18:25:30.558-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Data Types'/><category scheme='http://www.blogger.com/atom/ns#' term='T-SQL'/><title type='text'>Numeric Data Types</title><content type='html'>The following link is a good reference and goes to a site that details numeric data types.&lt;br /&gt;&lt;br /&gt;http://www.tar.hu/sqlbible/sqlbible0022.html&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/118075691026449988-106616093646368137?l=cmstechnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cmstechnotes.blogspot.com/feeds/106616093646368137/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=118075691026449988&amp;postID=106616093646368137' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/118075691026449988/posts/default/106616093646368137'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/118075691026449988/posts/default/106616093646368137'/><link rel='alternate' type='text/html' href='http://cmstechnotes.blogspot.com/2008/02/numeric-data-types.html' title='Numeric Data Types'/><author><name>Gustafson</name><uri>http://www.blogger.com/profile/10548466163203170967</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-118075691026449988.post-3496914595625581207</id><published>2008-02-23T14:30:00.000-08:00</published><updated>2008-02-23T14:41:36.068-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Blogger'/><category scheme='http://www.blogger.com/atom/ns#' term='Resources'/><category scheme='http://www.blogger.com/atom/ns#' term='HTML'/><title type='text'>Needing to HTML encode characters for code displaid in Blogger</title><content type='html'>Some of my first posts suffer from this problem from using blogger to keep notes on code...  Blogger's interpretation engine changes the left and right brackets so that the code reads incorrectly.  I would imagine this was meant as a security issue, but wrapping code in "pre" or "code" tags doesn't work in blogger to display code either...  oh well.&lt;br /&gt;&lt;br /&gt;This issue can be resolved by using the HTML 4.0 encoding which I have surrounded by quotes and separated each character by spaces below for the two characters that give me the most issues.&lt;br /&gt;&lt;br /&gt;Eventually I will code my own blog, but for the time being this works.&lt;br /&gt;&lt;br /&gt;&amp;lt;    "&amp;amp; l t ;"  - Left Bracket&lt;br /&gt;&lt;br /&gt;&amp;gt;    "&amp;amp; g t ;"  - Right Bracket&lt;br /&gt;&lt;br /&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; n b s p ;" - No-Break-Space [needs to be inserted in the "Edit Html" tab]&lt;br /&gt;&lt;br /&gt;Source:&lt;br /&gt;http://www.alanwood.net/demos/ansi.html&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/118075691026449988-3496914595625581207?l=cmstechnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cmstechnotes.blogspot.com/feeds/3496914595625581207/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=118075691026449988&amp;postID=3496914595625581207' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/118075691026449988/posts/default/3496914595625581207'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/118075691026449988/posts/default/3496914595625581207'/><link rel='alternate' type='text/html' href='http://cmstechnotes.blogspot.com/2008/02/needing-to-html-encode-characters-for.html' title='Needing to HTML encode characters for code displaid in Blogger'/><author><name>Gustafson</name><uri>http://www.blogger.com/profile/10548466163203170967</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-118075691026449988.post-8624544540338300634</id><published>2008-02-23T14:14:00.001-08:00</published><updated>2008-02-23T14:40:39.561-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Multi-Tiered Application'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Basic'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='How-To'/><title type='text'>Using Both VB AND C# in the same .NET Project/Website</title><content type='html'>The following article discusses this issue and how to use both Visual Basic and C# in the same .NET Project or Website.&lt;br /&gt;&lt;br /&gt;http://www.timheuer.com/blog/archive/2007/02/28/14002.aspx&lt;br /&gt;&lt;br /&gt;Basically, add one folder for VB (e.g. "VBCode") and one for C# (e.g "CSCode")  and then add this to your web.config in the compilation section&lt;br /&gt;&lt;br /&gt;&amp;lt;compilation debug="false"&amp;gt;&lt;br /&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;codeSubDirectories&gt;&lt;br /&gt;       &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;add directoryName="VBCode"/&amp;gt;&lt;br /&gt;       &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;add directoryName="CSCode"/&amp;gt;&lt;br /&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/codeSubDirectories&amp;gt;&lt;br /&gt;&amp;lt;/compilation&amp;gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/118075691026449988-8624544540338300634?l=cmstechnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cmstechnotes.blogspot.com/feeds/8624544540338300634/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=118075691026449988&amp;postID=8624544540338300634' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/118075691026449988/posts/default/8624544540338300634'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/118075691026449988/posts/default/8624544540338300634'/><link rel='alternate' type='text/html' href='http://cmstechnotes.blogspot.com/2008/02/using-both-vb-and-c-in-same-net.html' title='Using Both VB AND C# in the same .NET Project/Website'/><author><name>Gustafson</name><uri>http://www.blogger.com/profile/10548466163203170967</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-118075691026449988.post-5439707264303282192</id><published>2008-02-17T18:52:00.000-08:00</published><updated>2008-03-10T09:32:46.387-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Books'/><category scheme='http://www.blogger.com/atom/ns#' term='Resources'/><title type='text'>Resource Guide, Library, and Literature</title><content type='html'>This is an ongoing post that will be continually updated over time.  The purpose is to list the books and paper resources that I keep on hand as a resource when developing applications and programming.&lt;br /&gt;&lt;br /&gt;My recent additions are two administrative books on iis 6 and 7, a book on design patterns, one on regular expressions, and a large book on javascript.&lt;br /&gt;&lt;br /&gt;I will return to this post to write out the official stuff and add commentary on which ones are the most useful.  I might even create individual posts for each book...  we will see.&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;h2&gt;Books&lt;br /&gt;&lt;/h2&gt;The following books are the ones I have brought to the office.  I will be bringing more books as I need them.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Microsoft IIS 6.0 Administrator's Pocket Consultant&lt;/li&gt;&lt;li&gt;Internet Information Services (IIS) 7.0 Administrator's Pocket Consultant&lt;/li&gt;&lt;li&gt;Microsoft SQL Server 2005 Administrator's Companion&lt;/li&gt;&lt;li&gt;Microsoft SQL Server 2005: Developer's Guide&lt;/li&gt;&lt;li&gt;Microsoft Applied XML Programming for .NET&lt;/li&gt;&lt;li&gt;Regular Expression Recipes&lt;/li&gt;&lt;li&gt;Pro ASP.NET 2.0 Website Programming&lt;/li&gt;&lt;li&gt;Mastering Web Development with Microsoft Visual Studio 2005&lt;/li&gt;&lt;li&gt;The Complete Reference JavaScript Second Edition&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/118075691026449988-5439707264303282192?l=cmstechnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cmstechnotes.blogspot.com/feeds/5439707264303282192/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=118075691026449988&amp;postID=5439707264303282192' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/118075691026449988/posts/default/5439707264303282192'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/118075691026449988/posts/default/5439707264303282192'/><link rel='alternate' type='text/html' href='http://cmstechnotes.blogspot.com/2008/02/resource-guide-library-and-literature.html' title='Resource Guide, Library, and Literature'/><author><name>Gustafson</name><uri>http://www.blogger.com/profile/10548466163203170967</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-118075691026449988.post-2536833910806266999</id><published>2008-01-29T22:39:00.000-08:00</published><updated>2008-01-30T09:12:25.420-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CSS'/><category scheme='http://www.blogger.com/atom/ns#' term='IE/FF Bug Resolutions'/><title type='text'>Equalizing Firefox and Internet Explorer</title><content type='html'>&lt;span style="color: rgb(153, 0, 0); font-weight: bold;"&gt;&lt;blockquote&gt;This is a work in progress - please comment if you can add to this list&lt;br /&gt;&lt;br /&gt;Note the list of links at the bottom: Useful Resources&lt;br /&gt;&lt;/blockquote&gt;&lt;/span&gt;The goal of this post is to create a base CSS file to start with that equalizes the differences between Firefox and Internet Explorer.&lt;br /&gt;&lt;br /&gt;For the time being I am comparing results between FF2.0 and IE6.0 - If anything here causes issue in other browsers, leave a detailed comment.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;h1 {font-size:24px;}&lt;br /&gt;h2 {font-size:18px;}&lt;br /&gt;h3 {font-size:14px;}&lt;br /&gt;&lt;br /&gt;the line height also needs to be adjusted as FF is incremental where as IE has a fixed seperator for all of the header tags&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Useful Resources&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.webcredible.co.uk/user-friendly-resources/css/internet-explorer.shtml"&gt;http://www.webcredible.co.uk/user-friendly-resources/css/internet-explorer.shtml&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/118075691026449988-2536833910806266999?l=cmstechnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cmstechnotes.blogspot.com/feeds/2536833910806266999/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=118075691026449988&amp;postID=2536833910806266999' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/118075691026449988/posts/default/2536833910806266999'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/118075691026449988/posts/default/2536833910806266999'/><link rel='alternate' type='text/html' href='http://cmstechnotes.blogspot.com/2008/01/equalizing-firefox-and-internet.html' title='Equalizing Firefox and Internet Explorer'/><author><name>Gustafson</name><uri>http://www.blogger.com/profile/10548466163203170967</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-118075691026449988.post-8139521057213135880</id><published>2008-01-29T16:03:00.000-08:00</published><updated>2008-01-29T21:06:48.476-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CSS'/><category scheme='http://www.blogger.com/atom/ns#' term='IE/FF Bug Resolutions'/><title type='text'>FireFox Nested Div Height Bug</title><content type='html'>&lt;blockquote style="font-weight: bold;"&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;Note: This technote is a work in progress as I have discovered other bugs. &lt;br /&gt;&lt;br /&gt;Eventually I will be putting together a test page to see what is needed to make both browsers "equal" in how they interpret things.  I have seen this implemented before and would imagine that it will save hours of testing.&lt;/span&gt; &lt;/blockquote&gt;This has been a problem that has plagued be on multiple occasions and I always seem to forget the solution, so here it is.&lt;br /&gt;&lt;br /&gt;When you have a div inside of a div, text in both, margins for both for show, and different background colors as a visual aide and the inner div is floating to the right and the outer div does not have the float property, the height will appear normal in IE (6) and incorrect in FF(7?).&lt;br /&gt;&lt;br /&gt;Normal is that the outer div fully encompasses the inner div.&lt;br /&gt;&lt;br /&gt;&lt;div style="margin: 10px; height: 70px; background-color: grey; width: 250px;"&gt;&lt;div style="width: 250px; background-color: Grey; float: inherit;"&gt;&lt;div style="margin: 10px; width: 100px; background-color: blue; float: right; clear: right; height: 50px;"&gt;Inner div text&lt;/div&gt;outer div text&lt;/div&gt;&lt;/div&gt;(note that the code used to generate the above is only representative - blogger interprets things differently)&lt;br /&gt;&lt;blockquote&gt;&lt;span style="color: rgb(153, 0, 0); font-weight: bold;"&gt;Another issue that I am addressing is that IE will not display the full height unless the page has been refreshed.  I am looking into this and will revise as needed.&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;Abnormal is that the outer div collapses to only the height of its contained text, while the inner div does the same but extends past the bottom of the first div.&lt;br /&gt;&lt;br /&gt;&lt;div style="margin: 10px; width: 250px; background-color: Grey;"&gt;&lt;div style="margin: 10px; width: 100px; background-color: blue; float: right; clear: right; height: 50px;"&gt;Inner div text&lt;/div&gt;outer div text&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;The Solution is to add the float property to the outer div i.e.  float:inherent;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/118075691026449988-8139521057213135880?l=cmstechnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cmstechnotes.blogspot.com/feeds/8139521057213135880/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=118075691026449988&amp;postID=8139521057213135880' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/118075691026449988/posts/default/8139521057213135880'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/118075691026449988/posts/default/8139521057213135880'/><link rel='alternate' type='text/html' href='http://cmstechnotes.blogspot.com/2008/01/firefox-nested-div-height-bug.html' title='FireFox Nested Div Height Bug'/><author><name>Gustafson</name><uri>http://www.blogger.com/profile/10548466163203170967</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-118075691026449988.post-6236974898003150772</id><published>2008-01-27T14:05:00.000-08:00</published><updated>2008-01-29T22:48:23.288-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Transfering Data'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Basic'/><category scheme='http://www.blogger.com/atom/ns#' term='How-To'/><title type='text'>Using the URL to pass data :: Request.QueryString()</title><content type='html'>There are several ways to send data between pages.  In this post I am going to discuss Request.QueryString() and how it can be used to retrieve data from the URL (also known as the QueryString)&lt;br /&gt;&lt;br /&gt;This can be a really easy way to set up a dynamic page, however it has its pitfalls.  Unless you encrypt the values it is not secure as anyone can see it.   The length of the URL is limited, can be obnoxious to type in by hand, and users can change the values.&lt;br /&gt;&lt;br /&gt;With that last part in mind test the values before using them. You may even want to encode the values to prevent scripting attacks.&lt;br /&gt;&lt;br /&gt;A URL that contains data is going to look like the following:&lt;br /&gt;&lt;blockquote&gt;www.website.com/Default.aspx?variable1=value1&amp;amp;variable2=value2&lt;/blockquote&gt;Everything after the question mark is interpreted as data sets. Each pair can be reached by calling the following:&lt;br /&gt;&lt;blockquote&gt;request.querystring("variable2") &lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/118075691026449988-6236974898003150772?l=cmstechnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cmstechnotes.blogspot.com/feeds/6236974898003150772/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=118075691026449988&amp;postID=6236974898003150772' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/118075691026449988/posts/default/6236974898003150772'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/118075691026449988/posts/default/6236974898003150772'/><link rel='alternate' type='text/html' href='http://cmstechnotes.blogspot.com/2008/01/using-url-to-pass-data.html' title='Using the URL to pass data :: Request.QueryString()'/><author><name>Gustafson</name><uri>http://www.blogger.com/profile/10548466163203170967</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-118075691026449988.post-2760268075904532524</id><published>2008-01-25T09:11:00.001-08:00</published><updated>2008-01-25T09:18:53.558-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='T-SQL'/><category scheme='http://www.blogger.com/atom/ns#' term='Data Manipulation'/><title type='text'>Nested T-SQL to Select Everything but a Subset of Data</title><content type='html'>The Basic idea behind the following query is to NOT select the messageIDs that are assigned a TagID of '2' (archived) and that are also for the predetermined UserNameReceiving.  Take note the use of the nested Select Statements as opposed to using a JOIN.  I find this to be clearer and more straight forward.&lt;br /&gt;&lt;br /&gt;SELECT DISTINCT MessageID, UserNameReceiving, UserNameSending, Subject, Message, Date&lt;br /&gt;FROM Messages&lt;br /&gt;WHERE (UserNameReceiving = @UserNameReceiving)&lt;br /&gt;      AND (NOT (MessageID IN&lt;br /&gt;               (SELECT MessageID&lt;br /&gt;                FROM TaggedMessages AS TaggedMessages_1&lt;br /&gt;                WHERE (TagID = '2'))))&lt;br /&gt;ORDER BY Date DESC&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/118075691026449988-2760268075904532524?l=cmstechnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cmstechnotes.blogspot.com/feeds/2760268075904532524/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=118075691026449988&amp;postID=2760268075904532524' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/118075691026449988/posts/default/2760268075904532524'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/118075691026449988/posts/default/2760268075904532524'/><link rel='alternate' type='text/html' href='http://cmstechnotes.blogspot.com/2008/01/nested-t-sql-to-select-everything-but.html' title='Nested T-SQL to Select Everything but a Subset of Data'/><author><name>Gustafson</name><uri>http://www.blogger.com/profile/10548466163203170967</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-118075691026449988.post-6378947006698565590</id><published>2008-01-24T11:24:00.001-08:00</published><updated>2008-01-24T11:27:36.344-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JavaScript'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='How-To'/><title type='text'>OnClientClick action confirmations using javascript</title><content type='html'>Add the following to the linkbutton or commandbutton to create a javascript popup requesting to user to confirm the action.  The page will only post back if the confirmation is true. &lt;br /&gt;&lt;br /&gt;OnClientClick="return confirm('Are you sure you want to delete this comment?');"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/118075691026449988-6378947006698565590?l=cmstechnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cmstechnotes.blogspot.com/feeds/6378947006698565590/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=118075691026449988&amp;postID=6378947006698565590' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/118075691026449988/posts/default/6378947006698565590'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/118075691026449988/posts/default/6378947006698565590'/><link rel='alternate' type='text/html' href='http://cmstechnotes.blogspot.com/2008/01/onclientclick-action-confirmations.html' title='OnClientClick action confirmations using javascript'/><author><name>Gustafson</name><uri>http://www.blogger.com/profile/10548466163203170967</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-118075691026449988.post-5680269934423745829</id><published>2008-01-23T22:35:00.000-08:00</published><updated>2008-01-23T22:39:10.517-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Basic'/><category scheme='http://www.blogger.com/atom/ns#' term='How-To'/><title type='text'>How to Programatically Redirect from One Page to Another in ASP.NET</title><content type='html'>Response.Redirect()&lt;br /&gt;&lt;br /&gt;Server.Transfer()&lt;br /&gt;&lt;br /&gt;Pages 91-93&lt;br /&gt;Pro ASP.NET 2.0 in VB 2005 By Kaurance Moroney and Matthew MacDonald (Ed.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/118075691026449988-5680269934423745829?l=cmstechnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cmstechnotes.blogspot.com/feeds/5680269934423745829/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=118075691026449988&amp;postID=5680269934423745829' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/118075691026449988/posts/default/5680269934423745829'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/118075691026449988/posts/default/5680269934423745829'/><link rel='alternate' type='text/html' href='http://cmstechnotes.blogspot.com/2008/01/how-to-programatically-redirect-from.html' title='How to Programatically Redirect from One Page to Another in ASP.NET'/><author><name>Gustafson</name><uri>http://www.blogger.com/profile/10548466163203170967</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-118075691026449988.post-7458272814309605414</id><published>2007-12-30T13:58:00.000-08:00</published><updated>2007-12-30T14:09:39.502-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='Hosting'/><category scheme='http://www.blogger.com/atom/ns#' term='DreamHost'/><category scheme='http://www.blogger.com/atom/ns#' term='.htaccess'/><category scheme='http://www.blogger.com/atom/ns#' term='php.ini'/><title type='text'>Setting Up and Managing a DreamHost Account</title><content type='html'>The following are resources that have been helpful in setting up my DreamHost hosting accounts.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;http://wiki.dreamhost.com/Advanced_PHP_configuration&lt;/li&gt;&lt;ul&gt;&lt;li&gt;The above link helps to set up PHP and an initial .htaccess&lt;/li&gt;&lt;li&gt;When adding new domains it is necessary to create an alias of the ../php5 folder as well as the .htaccess&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/118075691026449988-7458272814309605414?l=cmstechnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cmstechnotes.blogspot.com/feeds/7458272814309605414/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=118075691026449988&amp;postID=7458272814309605414' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/118075691026449988/posts/default/7458272814309605414'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/118075691026449988/posts/default/7458272814309605414'/><link rel='alternate' type='text/html' href='http://cmstechnotes.blogspot.com/2007/12/setting-up-and-managing-dreamhost.html' title='Setting Up and Managing a DreamHost Account'/><author><name>Gustafson</name><uri>http://www.blogger.com/profile/10548466163203170967</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-118075691026449988.post-7060853672109027124</id><published>2007-12-15T20:40:00.000-08:00</published><updated>2007-12-15T20:53:29.251-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CSS'/><title type='text'>How to Force the Right Scroll Bar in Both Firefox And IE</title><content type='html'>I have seen many different attempts at forcing the right scroll bar.  It has been something that I have casually been searching for a solution for some time now. &lt;br /&gt;&lt;br /&gt;The issue that is resolved with a forced scroll bar deals with the page adjustment that is made when you navigate between a short page and a long page in a centered page design. The short page is smaller than the browser window and thus doesn't require a scroll bar.  The long page, being longer, automatically gets the scroll bar so that the width of the window is shorter and thus the centered page design shifts slightly to the left.&lt;br /&gt;&lt;br /&gt;Many of these techniques set some aspect of the page height greater than the actual page height.  The issue there is that it is unclean and creates scrap page space.&lt;br /&gt;&lt;br /&gt;Another technique uses JavaScript.  I generally avoid adding JavaScript unless absolutely necessary for the functionality that I am aiming for.&lt;br /&gt;&lt;br /&gt;The solution that I recently came across is as follows and works nicely in both Internet Explorer and Firefox:&lt;br /&gt;&lt;pre style="font-weight: bold;"&gt;&lt;blockquote&gt;html { overflow-y: scroll; }&lt;br /&gt;html { overflow: -moz-scrollbars-vertical; }&lt;/blockquote&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/118075691026449988-7060853672109027124?l=cmstechnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cmstechnotes.blogspot.com/feeds/7060853672109027124/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=118075691026449988&amp;postID=7060853672109027124' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/118075691026449988/posts/default/7060853672109027124'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/118075691026449988/posts/default/7060853672109027124'/><link rel='alternate' type='text/html' href='http://cmstechnotes.blogspot.com/2007/12/how-to-force-right-scroll-bar-in-both.html' title='How to Force the Right Scroll Bar in Both Firefox And IE'/><author><name>Gustafson</name><uri>http://www.blogger.com/profile/10548466163203170967</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-118075691026449988.post-2553769749352692744</id><published>2007-11-30T09:30:00.000-08:00</published><updated>2007-11-30T14:04:40.200-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Basic'/><title type='text'>Calling a function from .aspx</title><content type='html'>There are times when programming web applications where a control just doesn't offer the functionality that one may be seeking.  Perhaps dynamically generated JavaScript, HTML, or other code needs to be added to a page, but needs to be kept separate from a label.&lt;br /&gt;&lt;br /&gt;Insert the following tag into your .aspx page.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;%= FunctionName() %&gt;&lt;/li&gt;&lt;/ul&gt;In the .aspx.vb file associated with that page add:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Public Function FunctionName()&lt;br /&gt;   'Include any logic here&lt;br /&gt;   Return "&lt;strong&gt;Hello World!&lt;/strong&gt;"&lt;br /&gt;End Function&lt;/li&gt;&lt;/ul&gt;Doing this hides the fact that logic was used to dish out the content.&lt;br /&gt;&lt;br /&gt;Variables can be build into the function to return different results. For example:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;%= FunctionName("Hello") %&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Returns: &lt;span&gt;Hello World!&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;which looks like this in the page source: &lt;strong style="font-weight: normal;"&gt;Hello World!&lt;/strong&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;%= FunctionName("GoodBye") %&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Returns: &lt;strong style="font-weight: normal;"&gt;Good Bye World!&lt;/strong&gt; &lt;span style="font-weight: bold;"&gt;  &lt;/span&gt;   &lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;br /&gt;which looks like this in the page source: Good Bye World!&lt;strong&gt;&lt;/strong&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Public Function FunctionName(ByVal strSomeVariable As String)&lt;br /&gt;&lt;br /&gt;   'Declare a variable to hold the html&lt;br /&gt;   Dim strReturnHTML As String&lt;br /&gt; &lt;br /&gt;   'Include any logic here&lt;br /&gt;   If strSomeVariable = "Hello" Then&lt;br /&gt;       strReturnHTML = &lt;strong style="font-weight: normal;"&gt;"Hello World!"&lt;/strong&gt;&lt;br /&gt;   ElseIf strSomeVariable = "GoodBye" Then&lt;br /&gt;       strReturnHTML = "Good Bye World!"&lt;br /&gt;   Else&lt;br /&gt;       strReturnHTML = "error: no parameter was set"&lt;br /&gt;   End If&lt;br /&gt;     &lt;br /&gt;   Return strReturnHTML&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;End Function&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/118075691026449988-2553769749352692744?l=cmstechnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cmstechnotes.blogspot.com/feeds/2553769749352692744/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=118075691026449988&amp;postID=2553769749352692744' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/118075691026449988/posts/default/2553769749352692744'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/118075691026449988/posts/default/2553769749352692744'/><link rel='alternate' type='text/html' href='http://cmstechnotes.blogspot.com/2007/11/calling-function-from-aspx.html' title='Calling a function from .aspx'/><author><name>Gustafson</name><uri>http://www.blogger.com/profile/10548466163203170967</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-118075691026449988.post-1069964693398991128</id><published>2007-11-25T15:43:00.000-08:00</published><updated>2008-01-25T09:22:27.268-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='Data Manipulation'/><title type='text'>Table Adapter Example</title><content type='html'>&lt;p&gt;The following block is an example of how to use the TableAdapters and was grabbed from http://weblogs.asp.net/scottgu/archive/2006/01/15/435498.aspx&lt;/p&gt;&lt;hr /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;Dim commentsAdapter As New CommentsTableAdapter&lt;br /&gt;    Dim Comments As TVFH.CommentsDataTable&lt;br /&gt;    Dim Comment As TVFH.CommentsRow&lt;br /&gt;&lt;br /&gt;    Comments = commentsAdapter.GetDataByNameSpaceAndSubNameSpace(PageName, SubNameSpace)&lt;br /&gt;&lt;br /&gt;    For Each Comment In Comments&lt;br /&gt;&lt;br /&gt;        Dim ReturnHTML As String += Comment.CommenterURL&lt;br /&gt;&lt;br /&gt;    Next&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/118075691026449988-1069964693398991128?l=cmstechnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cmstechnotes.blogspot.com/feeds/1069964693398991128/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=118075691026449988&amp;postID=1069964693398991128' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/118075691026449988/posts/default/1069964693398991128'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/118075691026449988/posts/default/1069964693398991128'/><link rel='alternate' type='text/html' href='http://cmstechnotes.blogspot.com/2007/11/table-adapter-example.html' title='Table Adapter Example'/><author><name>Gustafson</name><uri>http://www.blogger.com/profile/10548466163203170967</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-118075691026449988.post-7511628334200000533</id><published>2007-11-23T14:58:00.000-08:00</published><updated>2007-11-26T14:20:45.601-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Multi-Tiered Application'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>Multi-Tiered/Layered Applications</title><content type='html'>Developing your applications so that they make use of multiple layers and tiers is a good thing.  It allows you to separate and consolidate code so that your code is cleaner, easier to maintain, and scalable.  Although it is a pain to get started with this, once a few basics are understood it makes development of applications that require logic considerably easier.&lt;br /&gt;&lt;br /&gt;Layering your code separates functionality so that code that is not related stays separate, at least as separate as it can be.  Having all of your data access code in one place makes maintenance far simpler. It also keeps your code insulated from those who would use it against you.&lt;br /&gt;&lt;br /&gt;Most systems that are broken into layers will use a three layered system.  Those layers include the Data Access Layer (DAL), the Business Logic Layer (BLL), and the Presentation Layer (PL)&lt;br /&gt;&lt;br /&gt;On a single layer system everything is coded into the PL.  So when you throw a FormView on a page and then set up a SQLDataSource you are combining the business logic and data access. &lt;br /&gt;&lt;br /&gt;This is fine for prototyping as it is quick and easy to set up, but in many ways it is too limiting and often encourages bad coding practices. (For example, nesting data in master-detail becomes extremely difficult when you are attempting to nest datalists.)&lt;br /&gt;&lt;br /&gt;In the coming posts I will attempt to outline code that works so as to provide a guide for myself and for others who are trying to accomplish more complicated web application design.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/118075691026449988-7511628334200000533?l=cmstechnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cmstechnotes.blogspot.com/feeds/7511628334200000533/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=118075691026449988&amp;postID=7511628334200000533' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/118075691026449988/posts/default/7511628334200000533'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/118075691026449988/posts/default/7511628334200000533'/><link rel='alternate' type='text/html' href='http://cmstechnotes.blogspot.com/2007/11/multi-tiered-applications.html' title='Multi-Tiered/Layered Applications'/><author><name>Gustafson</name><uri>http://www.blogger.com/profile/10548466163203170967</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-118075691026449988.post-9010525821826056112</id><published>2007-11-23T14:52:00.000-08:00</published><updated>2007-11-23T14:58:39.056-08:00</updated><title type='text'>Introduction</title><content type='html'>The purpose of this blog is to create log of my research as I develop content management systems.  Each post will act as a technote that I can personally reference during project development and that others may benefit from as well.&lt;br /&gt;&lt;br /&gt;I do not guarantee that all of this code will work.  But will try to leave a note when I haven't verified something on one of my own machines.&lt;br /&gt;&lt;br /&gt;I will primarily be coding in ASP.NET and will be documenting coding techniques that I come across as I develop my content management system.&lt;br /&gt;&lt;br /&gt;Enjoy and be sure to leave feedback on my code for best practices and alternate ways of implementing code.  I will benefit from this and others will as well.&lt;br /&gt;&lt;br /&gt;Thanks and enjoy.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/118075691026449988-9010525821826056112?l=cmstechnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cmstechnotes.blogspot.com/feeds/9010525821826056112/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=118075691026449988&amp;postID=9010525821826056112' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/118075691026449988/posts/default/9010525821826056112'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/118075691026449988/posts/default/9010525821826056112'/><link rel='alternate' type='text/html' href='http://cmstechnotes.blogspot.com/2007/11/introduction.html' title='Introduction'/><author><name>Gustafson</name><uri>http://www.blogger.com/profile/10548466163203170967</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
