<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>kevin Mocha - DotNet | ASP</title>
    <link>http://blog.ilovedoudou.com/</link>
    <description>Bookmarks collected from web.</description>
    <language>en-us</language>
    <copyright>Kevin Mocha</copyright>
    <lastBuildDate>Sun, 11 Apr 2010 18:15:01 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 1.9.6264.0</generator>
    <managingEditor>lulustock@gmail.com</managingEditor>
    <webMaster>lulustock@gmail.com</webMaster>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=c7193442-a1cc-4549-acb6-0a82f44f1fcc</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,c7193442-a1cc-4549-acb6-0a82f44f1fcc.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,c7193442-a1cc-4549-acb6-0a82f44f1fcc.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=c7193442-a1cc-4549-acb6-0a82f44f1fcc</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a title="http://weblogs.asp.net/scottgu/archive/2010/03/11/asp-net-mvc-2-released.aspx" href="http://weblogs.asp.net/scottgu/archive/2010/03/11/asp-net-mvc-2-released.aspx">http://weblogs.asp.net/scottgu/archive/2010/03/11/asp-net-mvc-2-released.aspx</a>
          <br />
          <br />
        </p>
        <p>
ASP.NET MVC 2 adds a bunch of new capabilities and features.  I’ve started a <a href="http://weblogs.asp.net/scottgu/archive/2010/01/10/asp-net-mvc-2.aspx">blog
series</a> about some of the new features, and will be covering them in more depth
in the weeks ahead.  Some of the new features and capabilities include: 
</p>
        <ul>
          <li>
            <a href="http://weblogs.asp.net/scottgu/archive/2010/01/10/asp-net-mvc-2-strongly-typed-html-helpers.aspx">New
Strongly Typed HTML Helpers</a>
          </li>
          <li>
            <a href="http://weblogs.asp.net/scottgu/archive/2010/01/15/asp-net-mvc-2-model-validation.aspx">Enhanced
Model Validation support across both server and client</a>
          </li>
          <li>
Auto-Scaffold UI Helpers with Template Customization 
</li>
          <li>
Support for splitting up large applications into “Areas” 
</li>
          <li>
Asynchronous Controllers support that enables long running tasks in parallel 
</li>
          <li>
Support for rendering sub-sections of a page/site using Html.RenderAction 
</li>
          <li>
Lots of new helper functions, utilities, and API enhancements 
</li>
          <li>
Improved Visual Studio tooling support 
</li>
        </ul>
        <p>
          <a href="http://go.microsoft.com/fwlink/?LinkID=157074">
          </a>
        </p>
        <p>
You can learn more about these features in the “<a href="http://www.asp.net/learn/whitepapers/what-is-new-in-aspnet-mvc/">What’s
New in ASP.NET MVC 2</a>” document on the <a href="http://www.asp.net/mvc/">www.asp.net/mvc</a> web-site.  <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=c7193442-a1cc-4549-acb6-0a82f44f1fcc" /></p>
      </body>
      <title>ASP.NET MVC 2 Features</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,c7193442-a1cc-4549-acb6-0a82f44f1fcc.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,c7193442-a1cc-4549-acb6-0a82f44f1fcc.aspx</link>
      <pubDate>Sun, 11 Apr 2010 18:15:01 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a title="http://weblogs.asp.net/scottgu/archive/2010/03/11/asp-net-mvc-2-released.aspx" href="http://weblogs.asp.net/scottgu/archive/2010/03/11/asp-net-mvc-2-released.aspx"&gt;http://weblogs.asp.net/scottgu/archive/2010/03/11/asp-net-mvc-2-released.aspx&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
ASP.NET MVC 2 adds a bunch of new capabilities and features.&amp;nbsp; I’ve started a &lt;a href="http://weblogs.asp.net/scottgu/archive/2010/01/10/asp-net-mvc-2.aspx"&gt;blog
series&lt;/a&gt; about some of the new features, and will be covering them in more depth
in the weeks ahead.&amp;nbsp; Some of the new features and capabilities include: 
&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://weblogs.asp.net/scottgu/archive/2010/01/10/asp-net-mvc-2-strongly-typed-html-helpers.aspx"&gt;New
Strongly Typed HTML Helpers&lt;/a&gt; 
&lt;li&gt;
&lt;a href="http://weblogs.asp.net/scottgu/archive/2010/01/15/asp-net-mvc-2-model-validation.aspx"&gt;Enhanced
Model Validation support across both server and client&lt;/a&gt; 
&lt;li&gt;
Auto-Scaffold UI Helpers with Template Customization 
&lt;li&gt;
Support for splitting up large applications into “Areas” 
&lt;li&gt;
Asynchronous Controllers support that enables long running tasks in parallel 
&lt;li&gt;
Support for rendering sub-sections of a page/site using Html.RenderAction 
&lt;li&gt;
Lots of new helper functions, utilities, and API enhancements 
&lt;li&gt;
Improved Visual Studio tooling support 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;a href="http://go.microsoft.com/fwlink/?LinkID=157074"&gt;&lt;/a&gt; 
&lt;p&gt;
You can learn more about these features in the “&lt;a href="http://www.asp.net/learn/whitepapers/what-is-new-in-aspnet-mvc/"&gt;What’s
New in ASP.NET MVC 2&lt;/a&gt;” document on the &lt;a href="http://www.asp.net/mvc/"&gt;www.asp.net/mvc&lt;/a&gt; web-site.&amp;nbsp; &lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=c7193442-a1cc-4549-acb6-0a82f44f1fcc" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,c7193442-a1cc-4549-acb6-0a82f44f1fcc.aspx</comments>
      <category>DotNet / ASP</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=0a2dc92d-99da-4699-9c88-65595f5fe355</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,0a2dc92d-99da-4699-9c88-65595f5fe355.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,0a2dc92d-99da-4699-9c88-65595f5fe355.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=0a2dc92d-99da-4699-9c88-65595f5fe355</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <font size="2">Below is a picture of the HTTP Request Pipeline and its three replaceable
component types: <strong>HttpHandler, HttpApplication, and HttpModule.</strong> As
requests come in, they are queued up and assigned to a worker thread that then processes
the request by interacting with each of these component types. </font>
        </p>
        <p>
          <a name="115">
            <font size="2">
            </font>
          </a>
          <a name="ch0">
          </a> 
</p>
        <p>
          <a href="http://blog.ilovedoudou.com/content/binary/WindowsLiveWriter/HTTPRequestPipeline_8F9A/image_2.png">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blog.ilovedoudou.com/content/binary/WindowsLiveWriter/HTTPRequestPipeline_8F9A/image_thumb.png" width="397" height="195" />
          </a>
        </p>
        <p>
          <br />
          <font size="2">Figure 2-4: The HTTP Request Pipeline allows developers to replace
components such as HttpHandler, HttpApplication, and HttpModule.</font>
        </p>
        <p>
          <font size="2">The ultimate destination of any request is the endpoint, which is modeled
in the HTTP Request Pipeline by using an HttpHandler class, which implements the IHttpHandler
interface. As a developer, you can create a custom HttpHandler component and plug
it into the HTTP Request Pipeline by adding configuration elements to the web.config
file.<br /></font>
        </p>
        <p>
          <font size="2">The HTTP Request Pipeline places an HttpApplication component in front
of the HttpHandler. On an application-wide basis, incoming requests are always routed
through the HttpApplication before they reach the target HttpHandler, thus giving
the HttpApplication the ability to pre-process any request no matter which HttpHandler
it is being routed to. This preprocessing stage is handled through a series of events
that are defined inside the HttpApplication class such as BeginRequest, AuthenticateRequest,
and AuthorizeRequest.<br /></font>
        </p>
        <p>
          <font size="2">In situations when you don’t want to use a custom HttpApplication component,
the ASP.NET Framework initializes the HTTP Request Pipeline with a standard HttpApplication
object that provides default behavior. However, you can replace this standard component
by creating a </font>
          <a name="116">
          </a>
          <a name="IDX-">
          </a>
          <font size="2">file named
global.asax and placing it in the root directory of the hosting ASP.NET application.
For example, you can create a global.asax that looks like the following: </font>
        </p>
        <pre>
          <font size="2">&lt;%@ Application Language="C#" %&gt; &lt;script runat="server"&gt;
protected void Application_AuthenticateRequest(object sender, EventArgs e) { // your
code goes here for request authentication } protected void Application_AuthorizeRequest(object
sender, EventArgs e) { // your code goes here for request authorization } &lt;/script&gt;</font>
        </pre>
        <p>
          <font size="2">The third replaceable component type in the HTTP Request Pipeline is
the HttpModule. The HttpModule is similar to the HttpApplication component in that
it is designed to handle events defined by the HttpApplication class and is processed
before control is passed to any HttpHandler classes. For example, you can create a
custom HttpModule component to handle request-level events such as BeginRequest, AuthenticateRequest,
and AuthorizeRequest. As with the HttpHandler, an HttpModule class is defined with
an interface. You can create a class that implements the IHttpModule interface and
plug it into the HTTP Request Pipeline by adding configuration elements to the web.config
file.<br /></font>
        </p>
        <p>
          <font size="2">Whereas custom HttpApplication components can be defined as simple
text files with an .asax extension, custom HttpModule components are always compiled
as classes within assembly DLLs. To add a custom HttpModule component into the HTTP
Request Pipeline, you then add entries into a web.config file.<br /></font>
        </p>
        <p>
          <font size="2">While an HttpApplication component and an HttpModule component are
similar in what they do, the HttpModule contains a few noteworthy differences. First,
you are not limited to one HttpModule per application as you are with the HttpApplication
components. The web.config file for an ASP.NET application can add in several different
HttpModule components. Second, HttpModule components can be configured at the machine
level. In fact, the ASP.NET Framework ships with several different HttpModule components
that are automatically configured at the machine level to provide ASP.NET functionality
for things such as Windows authentication, Forms authentication, and output caching.<br /></font>
        </p>
        <p>
          <font size="2">The final component that we want to discuss with respect to the HTTP
Request Pipeline is HttpContext. As ASP.NET initializes a request to send to the HTTP
Request Pipeline, it creates an object from the HttpContext class and initializes
it with important contextual information.</font>
        </p>
        <p>
          <font size="2">From a timing perspective, it’s important to see that ASP.NET creates
this object before any custom code inside the HTTP Request Pipeline has a chance to
begin execution. This means that you can always program against the HttpContext object
and the child objects that it </font>
          <a name="117">
          </a>
          <a name="IDX-">
          </a>
          <font size="2">contains,
such as Request, User, and Response. Whenever you are authoring a component that is
to execute within the HTTP Request Pipeline, you can write code that looks like the
following: </font>
        </p>
        <pre>
          <font size="2">HttpContext currentContext = HttpContext.Current; string incomingUrl
= currentContext.Request.Url; string currentUser = currentContext.User.Identity.Name;
currentContext.Response.Write("Hello world");</font>
        </pre>
        <p>
          <font size="2">
          </font>
        </p>
        <p>
          <font size="2">
          </font>
        </p>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=0a2dc92d-99da-4699-9c88-65595f5fe355" />
      </body>
      <title>HTTP Request Pipeline</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,0a2dc92d-99da-4699-9c88-65595f5fe355.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,0a2dc92d-99da-4699-9c88-65595f5fe355.aspx</link>
      <pubDate>Fri, 09 Apr 2010 14:12:43 GMT</pubDate>
      <description>&lt;p&gt;
&lt;font size="2"&gt;Below is a picture of the HTTP Request Pipeline and its three replaceable
component types: &lt;strong&gt;HttpHandler, HttpApplication, and HttpModule.&lt;/strong&gt; As
requests come in, they are queued up and assigned to a worker thread that then processes
the request by interacting with each of these component types. &lt;/font&gt; 
&lt;p&gt;
&lt;a name="115"&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/a&gt;&lt;a name="ch0"&gt;&lt;/a&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.ilovedoudou.com/content/binary/WindowsLiveWriter/HTTPRequestPipeline_8F9A/image_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blog.ilovedoudou.com/content/binary/WindowsLiveWriter/HTTPRequestPipeline_8F9A/image_thumb.png" width="397" height="195"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;br&gt;
&lt;font size="2"&gt;Figure 2-4: The HTTP Request Pipeline allows developers to replace
components such as HttpHandler, HttpApplication, and HttpModule.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font size="2"&gt;The ultimate destination of any request is the endpoint, which is modeled
in the HTTP Request Pipeline by using an HttpHandler class, which implements the IHttpHandler
interface. As a developer, you can create a custom HttpHandler component and plug
it into the HTTP Request Pipeline by adding configuration elements to the web.config
file.&lt;br&gt;
&lt;/font&gt; 
&lt;p&gt;
&lt;font size="2"&gt;The HTTP Request Pipeline places an HttpApplication component in front
of the HttpHandler. On an application-wide basis, incoming requests are always routed
through the HttpApplication before they reach the target HttpHandler, thus giving
the HttpApplication the ability to pre-process any request no matter which HttpHandler
it is being routed to. This preprocessing stage is handled through a series of events
that are defined inside the HttpApplication class such as BeginRequest, AuthenticateRequest,
and AuthorizeRequest.&lt;br&gt;
&lt;/font&gt; 
&lt;p&gt;
&lt;font size="2"&gt;In situations when you don’t want to use a custom HttpApplication component,
the ASP.NET Framework initializes the HTTP Request Pipeline with a standard HttpApplication
object that provides default behavior. However, you can replace this standard component
by creating a &lt;/font&gt;&lt;a name="116"&gt;&lt;/a&gt;&lt;a name="IDX-"&gt;&lt;/a&gt;&lt;font size="2"&gt;file named
global.asax and placing it in the root directory of the hosting ASP.NET application.
For example, you can create a global.asax that looks like the following: &lt;/font&gt;&lt;pre&gt;&lt;font size="2"&gt;&amp;lt;%@
Application Language="C#" %&amp;gt; &amp;lt;script runat="server"&amp;gt; protected void Application_AuthenticateRequest(object
sender, EventArgs e) { // your code goes here for request authentication } protected
void Application_AuthorizeRequest(object sender, EventArgs e) { // your code goes
here for request authorization } &amp;lt;/script&amp;gt;&lt;/font&gt;&lt;/pre&gt;
&lt;p&gt;
&lt;font size="2"&gt;The third replaceable component type in the HTTP Request Pipeline is
the HttpModule. The HttpModule is similar to the HttpApplication component in that
it is designed to handle events defined by the HttpApplication class and is processed
before control is passed to any HttpHandler classes. For example, you can create a
custom HttpModule component to handle request-level events such as BeginRequest, AuthenticateRequest,
and AuthorizeRequest. As with the HttpHandler, an HttpModule class is defined with
an interface. You can create a class that implements the IHttpModule interface and
plug it into the HTTP Request Pipeline by adding configuration elements to the web.config
file.&lt;br&gt;
&lt;/font&gt; 
&lt;p&gt;
&lt;font size="2"&gt;Whereas custom HttpApplication components can be defined as simple
text files with an .asax extension, custom HttpModule components are always compiled
as classes within assembly DLLs. To add a custom HttpModule component into the HTTP
Request Pipeline, you then add entries into a web.config file.&lt;br&gt;
&lt;/font&gt; 
&lt;p&gt;
&lt;font size="2"&gt;While an HttpApplication component and an HttpModule component are
similar in what they do, the HttpModule contains a few noteworthy differences. First,
you are not limited to one HttpModule per application as you are with the HttpApplication
components. The web.config file for an ASP.NET application can add in several different
HttpModule components. Second, HttpModule components can be configured at the machine
level. In fact, the ASP.NET Framework ships with several different HttpModule components
that are automatically configured at the machine level to provide ASP.NET functionality
for things such as Windows authentication, Forms authentication, and output caching.&lt;br&gt;
&lt;/font&gt; 
&lt;p&gt;
&lt;font size="2"&gt;The final component that we want to discuss with respect to the HTTP
Request Pipeline is HttpContext. As ASP.NET initializes a request to send to the HTTP
Request Pipeline, it creates an object from the HttpContext class and initializes
it with important contextual information.&lt;/font&gt; 
&lt;p&gt;
&lt;font size="2"&gt;From a timing perspective, it’s important to see that ASP.NET creates
this object before any custom code inside the HTTP Request Pipeline has a chance to
begin execution. This means that you can always program against the HttpContext object
and the child objects that it &lt;/font&gt;&lt;a name="117"&gt;&lt;/a&gt;&lt;a name="IDX-"&gt;&lt;/a&gt;&lt;font size="2"&gt;contains,
such as Request, User, and Response. Whenever you are authoring a component that is
to execute within the HTTP Request Pipeline, you can write code that looks like the
following: &lt;/font&gt;&lt;pre&gt;&lt;font size="2"&gt;HttpContext currentContext = HttpContext.Current;
string incomingUrl = currentContext.Request.Url; string currentUser = currentContext.User.Identity.Name;
currentContext.Response.Write("Hello world");&lt;/font&gt;&lt;/pre&gt;
&lt;p&gt;
&lt;font size="2"&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font size="2"&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=0a2dc92d-99da-4699-9c88-65595f5fe355" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,0a2dc92d-99da-4699-9c88-65595f5fe355.aspx</comments>
      <category>DotNet;DotNet / ASP</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=2d15b6d5-fc6b-4f22-afe0-0cf247ee51d8</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,2d15b6d5-fc6b-4f22-afe0-0cf247ee51d8.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,2d15b6d5-fc6b-4f22-afe0-0cf247ee51d8.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=2d15b6d5-fc6b-4f22-afe0-0cf247ee51d8</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <font size="2">Model-view-presenter (MVP) is a recent variation on MVC that’s designed
to fit more easily<br />
with stateful GUI platforms such as Windows Forms or ASP.NET WebForms. You don’t need
to<br />
know about MVP when you’re using ASP.NET MVC, but it’s worth explaining what it is
so you<br />
can avoid confusion.<br /><br />
In this twist, the presenter has the same responsibilities as MVC’s controller, plus
it also<br />
takes a more hands-on relationship to the stateful view, <strong>directly editing
the values displayed<br /></strong>in its UI widgets according to user input <strong>(instead of letting the
view render itself from a template</strong>).<br />
There are two main flavors:<br /><br />
• Passive view, in which the view contains no logic, and merely has its UI widgets
manipulated<br />
by the presenter.<br /><br />
• Supervising controller, in which the view may be responsible for certain presentation<br />
logic, such as data binding, having been given a reference to some data source in
the<br />
model.<br /><br />
The difference between the two flavors is quite subjective and simply relates to how<br />
intelligent the view is allowed to be. Either way, the presenter is decoupled from
the GUI<br />
technology, so its logic can be followed easily and is suitable for automated testing</font>
        </p>
        <p>
          <a href="http://blog.ilovedoudou.com/content/binary/WindowsLiveWriter/MVPvsMVC_F4EA/image_2.png">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blog.ilovedoudou.com/content/binary/WindowsLiveWriter/MVPvsMVC_F4EA/image_thumb.png" width="555" height="144" />
          </a>
        </p>
        <p>
          <font size="2">In this architecture, <strong>requests are routed to a controller class</strong>,
which processes user input<br />
and works with the domain model to handle the request. While the domain model holds<br />
domain logic (i.e., business objects and rules), controllers hold application logic,
such as navigation<br />
through a multistep process or technical details like authentication. When it’s time
to<br />
produce a visible UI for the user, <strong>the controller prepares the data to be
displayed</strong> (the presentation<br />
model, or ViewData in ASP.NET MVC, which for example might be a list of Product<br />
objects matching the requested category), selects a view, and leaves it to complete
the job.<br />
Since controller classes aren’t coupled to the UI technology (HTML), they are just
pure,<br />
testable application logic.</font>
          <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=2d15b6d5-fc6b-4f22-afe0-0cf247ee51d8" />
        </p>
      </body>
      <title>MVP vs MVC</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,2d15b6d5-fc6b-4f22-afe0-0cf247ee51d8.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,2d15b6d5-fc6b-4f22-afe0-0cf247ee51d8.aspx</link>
      <pubDate>Sun, 04 Apr 2010 21:25:02 GMT</pubDate>
      <description>&lt;p&gt;
&lt;font size="2"&gt;Model-view-presenter (MVP) is a recent variation on MVC that’s designed
to fit more easily&lt;br&gt;
with stateful GUI platforms such as Windows Forms or ASP.NET WebForms. You don’t need
to&lt;br&gt;
know about MVP when you’re using ASP.NET MVC, but it’s worth explaining what it is
so you&lt;br&gt;
can avoid confusion.&lt;br&gt;
&lt;br&gt;
In this twist, the presenter has the same responsibilities as MVC’s controller, plus
it also&lt;br&gt;
takes a more hands-on relationship to the stateful view, &lt;strong&gt;directly editing
the values displayed&lt;br&gt;
&lt;/strong&gt;in its UI widgets according to user input &lt;strong&gt;(instead of letting the
view render itself from a template&lt;/strong&gt;).&lt;br&gt;
There are two main flavors:&lt;br&gt;
&lt;br&gt;
• Passive view, in which the view contains no logic, and merely has its UI widgets
manipulated&lt;br&gt;
by the presenter.&lt;br&gt;
&lt;br&gt;
• Supervising controller, in which the view may be responsible for certain presentation&lt;br&gt;
logic, such as data binding, having been given a reference to some data source in
the&lt;br&gt;
model.&lt;br&gt;
&lt;br&gt;
The difference between the two flavors is quite subjective and simply relates to how&lt;br&gt;
intelligent the view is allowed to be. Either way, the presenter is decoupled from
the GUI&lt;br&gt;
technology, so its logic can be followed easily and is suitable for automated testing&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.ilovedoudou.com/content/binary/WindowsLiveWriter/MVPvsMVC_F4EA/image_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blog.ilovedoudou.com/content/binary/WindowsLiveWriter/MVPvsMVC_F4EA/image_thumb.png" width="555" height="144"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;font size="2"&gt;In this architecture, &lt;strong&gt;requests are routed to a controller class&lt;/strong&gt;,
which processes user input&lt;br&gt;
and works with the domain model to handle the request. While the domain model holds&lt;br&gt;
domain logic (i.e., business objects and rules), controllers hold application logic,
such as navigation&lt;br&gt;
through a multistep process or technical details like authentication. When it’s time
to&lt;br&gt;
produce a visible UI for the user, &lt;strong&gt;the controller prepares the data to be
displayed&lt;/strong&gt; (the presentation&lt;br&gt;
model, or ViewData in ASP.NET MVC, which for example might be a list of Product&lt;br&gt;
objects matching the requested category), selects a view, and leaves it to complete
the job.&lt;br&gt;
Since controller classes aren’t coupled to the UI technology (HTML), they are just
pure,&lt;br&gt;
testable application logic.&lt;/font&gt;&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=2d15b6d5-fc6b-4f22-afe0-0cf247ee51d8" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,2d15b6d5-fc6b-4f22-afe0-0cf247ee51d8.aspx</comments>
      <category>Design;DotNet / ASP</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=8af1896a-d1d4-4ba0-96f8-4eecbb7b2753</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,8af1896a-d1d4-4ba0-96f8-4eecbb7b2753.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,8af1896a-d1d4-4ba0-96f8-4eecbb7b2753.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=8af1896a-d1d4-4ba0-96f8-4eecbb7b2753</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <font size="2">• WebForms takes the view that UIs should be stateful, and to that
end adds a sophisticated<br />
abstraction layer on top of HTTP and HTML, using ViewState and postbacks to<br />
create the effect of statefulness. This makes it suitable for drag-and-drop Windows<br />
Forms–style development, in which you pull UI widgets onto a canvas and fill in code<br />
for their event handlers.<br /><br />
• MVC embraces HTTP’s true stateless nature, working with it rather than fighting
against<br />
it. It requires you to understand how web applications actually work; but given that<br />
understanding, it provides a simple, powerful, and modern approach to writing web<br />
applications with tidy code that’s easy to test and maintain over time, free of bizarre<br />
complications and painful limitations.<br /><br />
There are certainly cases where WebForms is at least as good as, and probably better
than,<br />
MVC. The obvious example is small, intranet-type applications that are largely about
binding<br />
grids directly to database tables or stepping users through a wizard. Since you don’t
need to<br />
worry about the bandwidth issues that come with ViewState, don’t need to be concerned
with<br />
search engine optimization, and aren’t bothered about testability or long-term maintenance,<br />
WebForms’ drag-and-drop development strengths outweigh its weaknesses.<br /><br />
On the other hand, if you’re writing applications for the public Internet, or larger
intranet<br />
applications (e.g., more than a few person-month’s work), you’ll be aiming for fast
download<br />
speeds and cross-browser compatibility, built with higher-quality, well-architected
code suitable<br />
for automated testing, in which case MVC will deliver significant advantages for you.</font>
        </p>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=8af1896a-d1d4-4ba0-96f8-4eecbb7b2753" />
      </body>
      <title>ASP.NET MVC vs WebFroms Application</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,8af1896a-d1d4-4ba0-96f8-4eecbb7b2753.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,8af1896a-d1d4-4ba0-96f8-4eecbb7b2753.aspx</link>
      <pubDate>Sun, 04 Apr 2010 21:15:38 GMT</pubDate>
      <description>&lt;p&gt;
&lt;font size="2"&gt;• WebForms takes the view that UIs should be stateful, and to that
end adds a sophisticated&lt;br&gt;
abstraction layer on top of HTTP and HTML, using ViewState and postbacks to&lt;br&gt;
create the effect of statefulness. This makes it suitable for drag-and-drop Windows&lt;br&gt;
Forms–style development, in which you pull UI widgets onto a canvas and fill in code&lt;br&gt;
for their event handlers.&lt;br&gt;
&lt;br&gt;
• MVC embraces HTTP’s true stateless nature, working with it rather than fighting
against&lt;br&gt;
it. It requires you to understand how web applications actually work; but given that&lt;br&gt;
understanding, it provides a simple, powerful, and modern approach to writing web&lt;br&gt;
applications with tidy code that’s easy to test and maintain over time, free of bizarre&lt;br&gt;
complications and painful limitations.&lt;br&gt;
&lt;br&gt;
There are certainly cases where WebForms is at least as good as, and probably better
than,&lt;br&gt;
MVC. The obvious example is small, intranet-type applications that are largely about
binding&lt;br&gt;
grids directly to database tables or stepping users through a wizard. Since you don’t
need to&lt;br&gt;
worry about the bandwidth issues that come with ViewState, don’t need to be concerned
with&lt;br&gt;
search engine optimization, and aren’t bothered about testability or long-term maintenance,&lt;br&gt;
WebForms’ drag-and-drop development strengths outweigh its weaknesses.&lt;br&gt;
&lt;br&gt;
On the other hand, if you’re writing applications for the public Internet, or larger
intranet&lt;br&gt;
applications (e.g., more than a few person-month’s work), you’ll be aiming for fast
download&lt;br&gt;
speeds and cross-browser compatibility, built with higher-quality, well-architected
code suitable&lt;br&gt;
for automated testing, in which case MVC will deliver significant advantages for you.&lt;/font&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=8af1896a-d1d4-4ba0-96f8-4eecbb7b2753" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,8af1896a-d1d4-4ba0-96f8-4eecbb7b2753.aspx</comments>
      <category>DotNet / ASP</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=092e94b1-72ec-4786-a209-cdc37089fd99</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,092e94b1-72ec-4786-a209-cdc37089fd99.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,092e94b1-72ec-4786-a209-cdc37089fd99.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=092e94b1-72ec-4786-a209-cdc37089fd99</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a title="http://blogs.msdn.com/dancre/archive/2007/02/13/the-difference-between-lt-and-lt-in-asp-net.aspx" href="http://blogs.msdn.com/dancre/archive/2007/02/13/the-difference-between-lt-and-lt-in-asp-net.aspx">http://blogs.msdn.com/dancre/archive/2007/02/13/the-difference-between-lt-and-lt-in-asp-net.aspx</a>
        </p>
        <ul>
          <li>
The &lt;%= expressions are evaluated at render time 
</li>
          <li>
The &lt;%# expressions are evaluated at DataBind() time and are not evaluated at all
if DataBind() is not called. 
</li>
          <li>
&lt;%# expressions can be used as properties in server-side controls. &lt;%= expressions
cannot.</li>
        </ul>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=092e94b1-72ec-4786-a209-cdc37089fd99" />
      </body>
      <title>The difference between &amp;lt;%= and &amp;lt;%# in ASP.NET</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,092e94b1-72ec-4786-a209-cdc37089fd99.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,092e94b1-72ec-4786-a209-cdc37089fd99.aspx</link>
      <pubDate>Mon, 22 Mar 2010 14:02:39 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a title="http://blogs.msdn.com/dancre/archive/2007/02/13/the-difference-between-lt-and-lt-in-asp-net.aspx" href="http://blogs.msdn.com/dancre/archive/2007/02/13/the-difference-between-lt-and-lt-in-asp-net.aspx"&gt;http://blogs.msdn.com/dancre/archive/2007/02/13/the-difference-between-lt-and-lt-in-asp-net.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
The &amp;lt;%= expressions are evaluated at render time 
&lt;li&gt;
The &amp;lt;%# expressions are evaluated at DataBind() time and are not evaluated at all
if DataBind() is not called. 
&lt;li&gt;
&amp;lt;%# expressions can be used as properties in server-side controls. &amp;lt;%= expressions
cannot.&lt;/li&gt;
&lt;/ul&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=092e94b1-72ec-4786-a209-cdc37089fd99" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,092e94b1-72ec-4786-a209-cdc37089fd99.aspx</comments>
      <category>DotNet / ASP</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=1fa71d51-f1b8-411d-92f0-4c7772edd0f5</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,1fa71d51-f1b8-411d-92f0-4c7772edd0f5.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,1fa71d51-f1b8-411d-92f0-4c7772edd0f5.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=1fa71d51-f1b8-411d-92f0-4c7772edd0f5</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a title="http://www.csstemplatesforfree.com/default.aspx" href="http://www.csstemplatesforfree.com/default.aspx">http://www.csstemplatesforfree.com/default.aspx</a>
        </p>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=1fa71d51-f1b8-411d-92f0-4c7772edd0f5" />
      </body>
      <title>Web Resources: CSS Templates</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,1fa71d51-f1b8-411d-92f0-4c7772edd0f5.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,1fa71d51-f1b8-411d-92f0-4c7772edd0f5.aspx</link>
      <pubDate>Tue, 16 Mar 2010 15:47:25 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a title="http://www.csstemplatesforfree.com/default.aspx" href="http://www.csstemplatesforfree.com/default.aspx"&gt;http://www.csstemplatesforfree.com/default.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=1fa71d51-f1b8-411d-92f0-4c7772edd0f5" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,1fa71d51-f1b8-411d-92f0-4c7772edd0f5.aspx</comments>
      <category>Cool Stuff;DotNet / ASP</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=244f67ad-ec70-4f98-bc35-e3d259e68646</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,244f67ad-ec70-4f98-bc35-e3d259e68646.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,244f67ad-ec70-4f98-bc35-e3d259e68646.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=244f67ad-ec70-4f98-bc35-e3d259e68646</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a title="http://adamnoffie.blogspot.com/2007/03/aspnet-forms-authentication-strange.html" href="http://adamnoffie.blogspot.com/2007/03/aspnet-forms-authentication-strange.html">http://adamnoffie.blogspot.com/2007/03/aspnet-forms-authentication-strange.html</a>
        </p>
        <p>
the login.aspx page would be missing all of the style information from our CSS style
sheet
</p>
        <p>
Solution - made a second Web.config and placed it in my App_Themes directory where
my style sheet lives.<code><br />
&lt;system.web&gt;<br />
&lt;authorization&gt;<br />
&lt;allow users="*"&gt;<br />
&lt;/allow&gt;<br />
&lt;/authorization&gt;<br />
&lt;/system.web&gt;</code></p>
        <p>
          <code>or use </code>
        </p>
        <p>
&lt;location path="App_Themes" allowOverride="false"&gt;<br />
  &lt;system.web&gt;<br />
    &lt;authorization&gt;<br />
      &lt;allow users="*"/&gt;<br />
    &lt;/authorization&gt;<br />
  &lt;/system.web&gt;<br />
&lt;/location&gt; <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=244f67ad-ec70-4f98-bc35-e3d259e68646" /></p>
      </body>
      <title>ASP.NET Forms Authentication Stylesheet Problem</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,244f67ad-ec70-4f98-bc35-e3d259e68646.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,244f67ad-ec70-4f98-bc35-e3d259e68646.aspx</link>
      <pubDate>Tue, 16 Mar 2010 15:46:01 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a title="http://adamnoffie.blogspot.com/2007/03/aspnet-forms-authentication-strange.html" href="http://adamnoffie.blogspot.com/2007/03/aspnet-forms-authentication-strange.html"&gt;http://adamnoffie.blogspot.com/2007/03/aspnet-forms-authentication-strange.html&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
the login.aspx page would be missing all of the style information from our CSS style
sheet
&lt;/p&gt;
&lt;p&gt;
Solution - made a second Web.config and placed it in my App_Themes directory where
my style sheet lives.&lt;code&gt;
&lt;br&gt;
&amp;lt;system.web&amp;gt;&lt;br&gt;
&amp;lt;authorization&amp;gt;&lt;br&gt;
&amp;lt;allow users="*"&amp;gt;&lt;br&gt;
&amp;lt;/allow&amp;gt;&lt;br&gt;
&amp;lt;/authorization&amp;gt;&lt;br&gt;
&amp;lt;/system.web&amp;gt;&lt;/code&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;code&gt;or use &lt;/code&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;lt;location path="App_Themes" allowOverride="false"&amp;gt;&lt;br&gt;
&amp;nbsp; &amp;lt;system.web&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;authorization&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;allow users="*"/&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/authorization&amp;gt;&lt;br&gt;
&amp;nbsp; &amp;lt;/system.web&amp;gt;&lt;br&gt;
&amp;lt;/location&amp;gt; &lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=244f67ad-ec70-4f98-bc35-e3d259e68646" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,244f67ad-ec70-4f98-bc35-e3d259e68646.aspx</comments>
      <category>DotNet / ASP</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=c5145cd0-5c94-4ed0-9283-a8db100b6b42</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,c5145cd0-5c94-4ed0-9283-a8db100b6b42.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,c5145cd0-5c94-4ed0-9283-a8db100b6b42.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=c5145cd0-5c94-4ed0-9283-a8db100b6b42</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a title="http://www.4guysfromrolla.com/articles/052406-1.aspx" href="http://www.4guysfromrolla.com/articles/052406-1.aspx">http://www.4guysfromrolla.com/articles/052406-1.aspx</a>
          <br />
          <a title="http://www.ezzylearning.com/tutorial.aspx?tid=5187857" href="http://www.ezzylearning.com/tutorial.aspx?tid=5187857">http://www.ezzylearning.com/tutorial.aspx?tid=5187857</a>
        </p>
        <pre class="csharpcode">&lt;asp:GridView ID=<span class="str">"GridView1"</span> runat=<span class="str">"server"</span> AutoGenerateColumns=<span class="str">"False"</span> BackColor=<span class="str">"White"</span> BorderColor=<span class="str">"#336699"</span> BorderStyle=<span class="str">"Solid"</span> BorderWidth=<span class="str">"1px"</span> CellPadding=<span class="str">"0"</span> CellSpacing=<span class="str">"0"</span> DataKeyNames=<span class="str">"CategoryID"</span> Font-Size=<span class="str">"10"</span> Font-Names=<span class="str">"Arial"</span> GridLines=<span class="str">"Vertical"</span> Width=<span class="str">"40%"</span>&gt;
&lt;Columns&gt; &lt;asp:TemplateField&gt; &lt;ItemTemplate&gt; &lt;asp:CheckBox ID=<span class="str">"chkStatus"</span> runat=<span class="str">"server"</span> AutoPostBack=<span class="str">"true"</span> OnCheckedChanged=<span class="str">"chkStatus_OnCheckedChanged"</span> Checked=<span class="str">'&lt;%#
Convert.ToBoolean(Eval("Approved")) %&gt;'</span> Text=<span class="str">'&lt;%# Eval("Approved").ToString().Equals("True")
? " Approved " : " Not Approved " %&gt;'</span> /&gt; &lt;/ItemTemplate&gt; &lt;/asp:TemplateField&gt;
&lt;asp:BoundField DataField=<span class="str">"CategoryID"</span> HeaderText=<span class="str">"CategoryID"</span> /&gt;
&lt;asp:BoundField DataField=<span class="str">"CategoryName"</span> HeaderText=<span class="str">"CategoryName"</span> /&gt;
&lt;/Columns&gt; &lt;HeaderStyle BackColor=<span class="str">"#336699"</span> ForeColor=<span class="str">"White"</span> Height=<span class="str">"20"</span> /&gt;
&lt;/asp:GridView&gt;</pre>
        <pre class="csharpcode">&lt;asp:GridView ID=<span class="str">"FileList"</span> runat=<span class="str">"server"</span> AutoGenerateColumns=<span class="str">"False"</span> DataKeyNames=<span class="str">"FullName"</span>&gt;
&lt;Columns&gt; &lt;asp:TemplateField&gt; &lt;ItemTemplate&gt; &lt;asp:CheckBox runat=<span class="str">"server"</span> ID=<span class="str">"RowLevelCheckBox"</span> /&gt;
&lt;/ItemTemplate&gt; &lt;/asp:TemplateField&gt; &lt;asp:BoundField DataField=<span class="str">"Name"</span> HeaderText=<span class="str">"Name"</span> /&gt;
&lt;asp:BoundField DataField=<span class="str">"CreationTime"</span> HeaderText=<span class="str">"Created
On"</span>&gt; &lt;ItemStyle HorizontalAlign=<span class="str">"Right"</span> /&gt;
&lt;/asp:BoundField&gt; &lt;asp:BoundField DataField=<span class="str">"Length"</span> DataFormatString=<span class="str">"{0:N0}"</span> HeaderText=<span class="str">"File
Size"</span> HtmlEncode=<span class="str">"False"</span>&gt; &lt;ItemStyle HorizontalAlign=<span class="str">"Right"</span> /&gt;
&lt;/asp:BoundField&gt; &lt;/Columns&gt; &lt;/asp:GridView&gt; </pre>
        <pre class="csharpcode">
          <span class="kwrd">Protected</span>
          <span class="kwrd">Sub</span> DeleteButton_Click(<span class="kwrd">ByVal</span> sender <span class="kwrd">As</span><span class="kwrd">Object</span>, <span class="kwrd">ByVal</span> e <span class="kwrd">As</span> System.EventArgs) <span class="kwrd">Handles</span> DeleteButton.Click
Summary.Text = <span class="str">"The following file would have been deleted:&lt;ul&gt;"</span><span class="kwrd">Dim</span> currentRowsFilePath <span class="kwrd">As</span><span class="kwrd">String</span><span class="rem">'Enumerate
the GridViewRows</span><span class="kwrd">For</span> index <span class="kwrd">As</span><span class="kwrd">Integer</span> =
0 <span class="kwrd">To</span> FileList.Rows.Count - 1 <span class="rem">'Programmatically
access the CheckBox from the TemplateField</span><span class="kwrd">Dim</span> cb <span class="kwrd">As</span> CheckBox
= <span class="kwrd">CType</span>(FileList.Rows(index).FindControl(<span class="str">"RowLevelCheckBox"</span>),
CheckBox) <span class="rem">'If it's checked, delete it...</span><span class="kwrd">If</span> cb.Checked <span class="kwrd">Then</span> currentRowsFilePath
= FileList.DataKeys(index).Value Summary.Text &amp;= <span class="kwrd">String</span>.Concat(<span class="str">"&lt;li&gt;"</span>,
currentRowsFilePath, <span class="str">"&lt;/li&gt;"</span>) <span class="kwrd">End</span><span class="kwrd">If</span><span class="kwrd">Next</span> Summary.Text
&amp;= <span class="str">"&lt;/ul&gt;"</span><span class="kwrd">End</span><span class="kwrd">Sub</span></pre>
        <style type="text/css">.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
        <style type="text/css">.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=c5145cd0-5c94-4ed0-9283-a8db100b6b42" />
      </body>
      <title>GridView data binding</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,c5145cd0-5c94-4ed0-9283-a8db100b6b42.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,c5145cd0-5c94-4ed0-9283-a8db100b6b42.aspx</link>
      <pubDate>Mon, 15 Mar 2010 19:12:12 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a title="http://www.4guysfromrolla.com/articles/052406-1.aspx" href="http://www.4guysfromrolla.com/articles/052406-1.aspx"&gt;http://www.4guysfromrolla.com/articles/052406-1.aspx&lt;/a&gt;
&lt;br&gt;
&lt;a title="http://www.ezzylearning.com/tutorial.aspx?tid=5187857" href="http://www.ezzylearning.com/tutorial.aspx?tid=5187857"&gt;http://www.ezzylearning.com/tutorial.aspx?tid=5187857&lt;/a&gt;
&lt;/p&gt;
&lt;pre class="csharpcode"&gt;&amp;lt;asp:GridView ID=&lt;span class="str"&gt;"GridView1"&lt;/span&gt; runat=&lt;span class="str"&gt;"server"&lt;/span&gt; AutoGenerateColumns=&lt;span class="str"&gt;"False"&lt;/span&gt; BackColor=&lt;span class="str"&gt;"White"&lt;/span&gt; BorderColor=&lt;span class="str"&gt;"#336699"&lt;/span&gt; BorderStyle=&lt;span class="str"&gt;"Solid"&lt;/span&gt; BorderWidth=&lt;span class="str"&gt;"1px"&lt;/span&gt; CellPadding=&lt;span class="str"&gt;"0"&lt;/span&gt; CellSpacing=&lt;span class="str"&gt;"0"&lt;/span&gt; DataKeyNames=&lt;span class="str"&gt;"CategoryID"&lt;/span&gt; Font-Size=&lt;span class="str"&gt;"10"&lt;/span&gt; Font-Names=&lt;span class="str"&gt;"Arial"&lt;/span&gt; GridLines=&lt;span class="str"&gt;"Vertical"&lt;/span&gt; Width=&lt;span class="str"&gt;"40%"&lt;/span&gt;&amp;gt;
&amp;lt;Columns&amp;gt; &amp;lt;asp:TemplateField&amp;gt; &amp;lt;ItemTemplate&amp;gt; &amp;lt;asp:CheckBox ID=&lt;span class="str"&gt;"chkStatus"&lt;/span&gt; runat=&lt;span class="str"&gt;"server"&lt;/span&gt; AutoPostBack=&lt;span class="str"&gt;"true"&lt;/span&gt; OnCheckedChanged=&lt;span class="str"&gt;"chkStatus_OnCheckedChanged"&lt;/span&gt; Checked=&lt;span class="str"&gt;'&amp;lt;%#
Convert.ToBoolean(Eval("Approved")) %&amp;gt;'&lt;/span&gt; Text=&lt;span class="str"&gt;'&amp;lt;%# Eval("Approved").ToString().Equals("True")
? " Approved " : " Not Approved " %&amp;gt;'&lt;/span&gt; /&amp;gt; &amp;lt;/ItemTemplate&amp;gt; &amp;lt;/asp:TemplateField&amp;gt;
&amp;lt;asp:BoundField DataField=&lt;span class="str"&gt;"CategoryID"&lt;/span&gt; HeaderText=&lt;span class="str"&gt;"CategoryID"&lt;/span&gt; /&amp;gt;
&amp;lt;asp:BoundField DataField=&lt;span class="str"&gt;"CategoryName"&lt;/span&gt; HeaderText=&lt;span class="str"&gt;"CategoryName"&lt;/span&gt; /&amp;gt;
&amp;lt;/Columns&amp;gt; &amp;lt;HeaderStyle BackColor=&lt;span class="str"&gt;"#336699"&lt;/span&gt; ForeColor=&lt;span class="str"&gt;"White"&lt;/span&gt; Height=&lt;span class="str"&gt;"20"&lt;/span&gt; /&amp;gt;
&amp;lt;/asp:GridView&amp;gt;&lt;/pre&gt;
&lt;pre class="csharpcode"&gt;&amp;lt;asp:GridView ID=&lt;span class="str"&gt;"FileList"&lt;/span&gt; runat=&lt;span class="str"&gt;"server"&lt;/span&gt; AutoGenerateColumns=&lt;span class="str"&gt;"False"&lt;/span&gt; DataKeyNames=&lt;span class="str"&gt;"FullName"&lt;/span&gt;&amp;gt;
&amp;lt;Columns&amp;gt; &amp;lt;asp:TemplateField&amp;gt; &amp;lt;ItemTemplate&amp;gt; &amp;lt;asp:CheckBox runat=&lt;span class="str"&gt;"server"&lt;/span&gt; ID=&lt;span class="str"&gt;"RowLevelCheckBox"&lt;/span&gt; /&amp;gt;
&amp;lt;/ItemTemplate&amp;gt; &amp;lt;/asp:TemplateField&amp;gt; &amp;lt;asp:BoundField DataField=&lt;span class="str"&gt;"Name"&lt;/span&gt; HeaderText=&lt;span class="str"&gt;"Name"&lt;/span&gt; /&amp;gt;
&amp;lt;asp:BoundField DataField=&lt;span class="str"&gt;"CreationTime"&lt;/span&gt; HeaderText=&lt;span class="str"&gt;"Created
On"&lt;/span&gt;&amp;gt; &amp;lt;ItemStyle HorizontalAlign=&lt;span class="str"&gt;"Right"&lt;/span&gt; /&amp;gt;
&amp;lt;/asp:BoundField&amp;gt; &amp;lt;asp:BoundField DataField=&lt;span class="str"&gt;"Length"&lt;/span&gt; DataFormatString=&lt;span class="str"&gt;"{0:N0}"&lt;/span&gt; HeaderText=&lt;span class="str"&gt;"File
Size"&lt;/span&gt; HtmlEncode=&lt;span class="str"&gt;"False"&lt;/span&gt;&amp;gt; &amp;lt;ItemStyle HorizontalAlign=&lt;span class="str"&gt;"Right"&lt;/span&gt; /&amp;gt;
&amp;lt;/asp:BoundField&amp;gt; &amp;lt;/Columns&amp;gt; &amp;lt;/asp:GridView&amp;gt; &lt;/pre&gt;
&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;Protected&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; DeleteButton_Click(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; sender &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Object&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; e &lt;span class="kwrd"&gt;As&lt;/span&gt; System.EventArgs) &lt;span class="kwrd"&gt;Handles&lt;/span&gt; DeleteButton.Click
Summary.Text = &lt;span class="str"&gt;"The following file would have been deleted:&amp;lt;ul&amp;gt;"&lt;/span&gt; &lt;span class="kwrd"&gt;Dim&lt;/span&gt; currentRowsFilePath &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt; &lt;span class="rem"&gt;'Enumerate
the GridViewRows&lt;/span&gt; &lt;span class="kwrd"&gt;For&lt;/span&gt; index &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Integer&lt;/span&gt; =
0 &lt;span class="kwrd"&gt;To&lt;/span&gt; FileList.Rows.Count - 1 &lt;span class="rem"&gt;'Programmatically
access the CheckBox from the TemplateField&lt;/span&gt; &lt;span class="kwrd"&gt;Dim&lt;/span&gt; cb &lt;span class="kwrd"&gt;As&lt;/span&gt; CheckBox
= &lt;span class="kwrd"&gt;CType&lt;/span&gt;(FileList.Rows(index).FindControl(&lt;span class="str"&gt;"RowLevelCheckBox"&lt;/span&gt;),
CheckBox) &lt;span class="rem"&gt;'If it's checked, delete it...&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt; cb.Checked &lt;span class="kwrd"&gt;Then&lt;/span&gt; currentRowsFilePath
= FileList.DataKeys(index).Value Summary.Text &amp;amp;= &lt;span class="kwrd"&gt;String&lt;/span&gt;.Concat(&lt;span class="str"&gt;"&amp;lt;li&amp;gt;"&lt;/span&gt;,
currentRowsFilePath, &lt;span class="str"&gt;"&amp;lt;/li&amp;gt;"&lt;/span&gt;) &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt; &lt;span class="kwrd"&gt;Next&lt;/span&gt; Summary.Text
&amp;amp;= &lt;span class="str"&gt;"&amp;lt;/ul&amp;gt;"&lt;/span&gt; &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; &lt;/pre&gt;
&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
&lt;/style&gt;
&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
&lt;/style&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=c5145cd0-5c94-4ed0-9283-a8db100b6b42" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,c5145cd0-5c94-4ed0-9283-a8db100b6b42.aspx</comments>
      <category>DotNet / ASP</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=eb5f2672-217d-4776-900d-7cc9d23f68ae</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,eb5f2672-217d-4776-900d-7cc9d23f68ae.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,eb5f2672-217d-4776-900d-7cc9d23f68ae.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=eb5f2672-217d-4776-900d-7cc9d23f68ae</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a title="http://www.andybudd.com/archives/2004/02/css_crib_sheet_3_centering_a_div/" href="http://www.andybudd.com/archives/2004/02/css_crib_sheet_3_centering_a_div/">http://www.andybudd.com/archives/2004/02/css_crib_sheet_3_centering_a_div/</a>
        </p>
        <pre>body {
	text-align: center;
	min-width: 600px;
}

#wrapper {
	margin:0 auto;
	width:600px;
	text-align: left;
}</pre>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=eb5f2672-217d-4776-900d-7cc9d23f68ae" />
      </body>
      <title>CSS: center the div</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,eb5f2672-217d-4776-900d-7cc9d23f68ae.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,eb5f2672-217d-4776-900d-7cc9d23f68ae.aspx</link>
      <pubDate>Sun, 14 Mar 2010 19:41:36 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a title="http://www.andybudd.com/archives/2004/02/css_crib_sheet_3_centering_a_div/" href="http://www.andybudd.com/archives/2004/02/css_crib_sheet_3_centering_a_div/"&gt;http://www.andybudd.com/archives/2004/02/css_crib_sheet_3_centering_a_div/&lt;/a&gt;
&lt;/p&gt;
&lt;pre&gt;body {
	text-align: center;
	min-width: 600px;
}

#wrapper {
	margin:0 auto;
	width:600px;
	text-align: left;
}&lt;/pre&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=eb5f2672-217d-4776-900d-7cc9d23f68ae" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,eb5f2672-217d-4776-900d-7cc9d23f68ae.aspx</comments>
      <category>DotNet / ASP;Web</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=a28e2b8e-a25f-452e-8537-ee2f5bb0ff8c</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,a28e2b8e-a25f-452e-8537-ee2f5bb0ff8c.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,a28e2b8e-a25f-452e-8537-ee2f5bb0ff8c.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=a28e2b8e-a25f-452e-8537-ee2f5bb0ff8c</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a title="http://learn.iis.net/page.aspx/140/understanding-the-built-in-user-and-group-accounts-in-iis-70/" href="http://learn.iis.net/page.aspx/140/understanding-the-built-in-user-and-group-accounts-in-iis-70/">http://learn.iis.net/page.aspx/140/understanding-the-built-in-user-and-group-accounts-in-iis-70/</a>
        </p>
        <p>
In previous versions of IIS, we had a local account created at install time called
IUSR_MachineName. The IUSR_MachineName account was the default identity used by IIS
whenever anonymous authentication was enabled. This was used by both the FTP and HTTP
services.  
</p>
        <p>
There was also had a group called IIS_WPG, used as a container for all the application
pool identities. We made sure all the appropriate resources on the system had the
correct permissions set for the IIS_WPG group during IIS setup so that an administrator
only needed to add their identity to that group when they created a new application
pool account. 
</p>
        <p>
This model worked well, but had its drawbacks: the IUSR_MachineName account and IIS_WPG
group were both local to the system it was created on. Every account and group within
Windows is given a unique number called a SID (security identifier) that distinguishes
it from other accounts. When an ACL is created only the SID is used. As part of our
design in previous versions of IIS, we had included the IUSR_MachineName in the metabase.xml
file so that if you tried to copy the metabase.xml from one machine to another, it
would not work--the account on the other machine would have a different name. 
</p>
        <p>
In addition, you could not just 'xcopy /o' ACLs from one machine to another since
the SIDs were different machine to machine. A work around was to use domain accounts--but
that required adding an active directory to the infrastructure. The IIS_WPG group
had similar issues with permissions. If you set ACLs on one machine's file system
for IIS_WPG and tried to 'xcopy /o' those over to another machine, it would fail.
The IIS team heard this feedback and improved this experience by using a built-in
account and group in IIS 7.0. 
</p>
        <p>
A built-in account and group are guaranteed by the operating system to always have
a unique SID. IIS 7.0 has taken this further and ensured the actual names used by
the new account and group will never be localized. For example, regardless of the
language of Windows you install, the IIS account name will always be IUSR and the
group name will be IIS_IUSRS. 
</p>
        <p>
In summary, IIS 7.0 offers: 
</p>
        <ul>
          <li>
The IUSR built-in account replaces the IUSR_MachineName account 
</li>
          <li>
The IIS_IUSRS built-in group replaces the IIS_WPG group 
</li>
        </ul>
        <p>
Since the IUSR account is a built in account, it no longer needs a password. Logically,
think of it as being the same as NETWORKSERVICE or LOCALSERVICE accounts. Both the
new IUSR account and IIS_IUSRS group are discussed in greater depth in the sections
below. 
</p>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=a28e2b8e-a25f-452e-8537-ee2f5bb0ff8c" />
      </body>
      <title>Understanding the Built-In User and Group Accounts in IIS 7.0</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,a28e2b8e-a25f-452e-8537-ee2f5bb0ff8c.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,a28e2b8e-a25f-452e-8537-ee2f5bb0ff8c.aspx</link>
      <pubDate>Mon, 01 Mar 2010 16:31:47 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a title="http://learn.iis.net/page.aspx/140/understanding-the-built-in-user-and-group-accounts-in-iis-70/" href="http://learn.iis.net/page.aspx/140/understanding-the-built-in-user-and-group-accounts-in-iis-70/"&gt;http://learn.iis.net/page.aspx/140/understanding-the-built-in-user-and-group-accounts-in-iis-70/&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
In previous versions of IIS, we had a local account created at install time called
IUSR_MachineName. The IUSR_MachineName account was the default identity used by IIS
whenever anonymous authentication was enabled. This was used by both the FTP and HTTP
services.&amp;nbsp; 
&lt;p&gt;
There was also had a group called IIS_WPG, used as a container for all the application
pool identities. We made sure all the appropriate resources on the system had the
correct permissions set for the IIS_WPG group during IIS setup so that an administrator
only needed to add their identity to that group when they created a new application
pool account. 
&lt;p&gt;
This model worked well, but had its drawbacks: the IUSR_MachineName account and IIS_WPG
group were both local to the system it was created on. Every account and group within
Windows is given a unique number called a SID (security identifier) that distinguishes
it from other accounts. When an ACL is created only the SID is used. As part of our
design in previous versions of IIS, we had included the IUSR_MachineName in the metabase.xml
file so that if you tried to copy the metabase.xml from one machine to another, it
would not work--the account on the other machine would have a different name. 
&lt;p&gt;
In addition, you could not just 'xcopy /o' ACLs from one machine to another since
the SIDs were different machine to machine. A work around was to use domain accounts--but
that required adding an active directory to the infrastructure. The IIS_WPG group
had similar issues with permissions. If you set ACLs on one machine's file system
for IIS_WPG and tried to 'xcopy /o' those over to another machine, it would fail.
The IIS team heard this feedback and improved this experience by using a built-in
account and group in IIS 7.0. 
&lt;p&gt;
A built-in account and group are guaranteed by the operating system to always have
a unique SID. IIS 7.0 has taken this further and ensured the actual names used by
the new account and group will never be localized. For example, regardless of the
language of Windows you install, the IIS account name will always be IUSR and the
group name will be IIS_IUSRS. 
&lt;p&gt;
In summary, IIS 7.0 offers: 
&lt;ul&gt;
&lt;li&gt;
The IUSR built-in account replaces the IUSR_MachineName account 
&lt;li&gt;
The IIS_IUSRS built-in group replaces the IIS_WPG group 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Since the IUSR account is a built in account, it no longer needs a password. Logically,
think of it as being the same as NETWORKSERVICE or LOCALSERVICE accounts. Both the
new IUSR account and IIS_IUSRS group are discussed in greater depth in the sections
below. 
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=a28e2b8e-a25f-452e-8537-ee2f5bb0ff8c" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,a28e2b8e-a25f-452e-8537-ee2f5bb0ff8c.aspx</comments>
      <category>DotNet / ASP</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=add8e545-f18a-49ef-8e31-39575246d74a</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,add8e545-f18a-49ef-8e31-39575246d74a.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,add8e545-f18a-49ef-8e31-39575246d74a.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=add8e545-f18a-49ef-8e31-39575246d74a</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a title="http://blogs.msdn.com/webdevtools/archive/2007/12/13/workaround-debugging-global-aspx-cs-application-start-with-asp-net-web-server-within-visual-studio.aspx" href="http://blogs.msdn.com/webdevtools/archive/2007/12/13/workaround-debugging-global-aspx-cs-application-start-with-asp-net-web-server-within-visual-studio.aspx">http://blogs.msdn.com/webdevtools/archive/2007/12/13/workaround-debugging-global-aspx-cs-application-start-with-asp-net-web-server-within-visual-studio.aspx</a>
        </p>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=add8e545-f18a-49ef-8e31-39575246d74a" />
      </body>
      <title>Workaround: Debugging Global.aspx.cs Application_Start() with ASP.Net Web Server within Visual Studio</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,add8e545-f18a-49ef-8e31-39575246d74a.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,add8e545-f18a-49ef-8e31-39575246d74a.aspx</link>
      <pubDate>Mon, 01 Feb 2010 13:33:06 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a title="http://blogs.msdn.com/webdevtools/archive/2007/12/13/workaround-debugging-global-aspx-cs-application-start-with-asp-net-web-server-within-visual-studio.aspx" href="http://blogs.msdn.com/webdevtools/archive/2007/12/13/workaround-debugging-global-aspx-cs-application-start-with-asp-net-web-server-within-visual-studio.aspx"&gt;http://blogs.msdn.com/webdevtools/archive/2007/12/13/workaround-debugging-global-aspx-cs-application-start-with-asp-net-web-server-within-visual-studio.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=add8e545-f18a-49ef-8e31-39575246d74a" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,add8e545-f18a-49ef-8e31-39575246d74a.aspx</comments>
      <category>DotNet / ASP</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=314c1a07-53ce-4625-a1c1-2790e3366024</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,314c1a07-53ce-4625-a1c1-2790e3366024.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,314c1a07-53ce-4625-a1c1-2790e3366024.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=314c1a07-53ce-4625-a1c1-2790e3366024</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a title="http://www.asp.net/learn/mvc/tutorial-08-cs.aspx" href="http://www.asp.net/learn/mvc/tutorial-08-cs.aspx">http://www.asp.net/learn/mvc/tutorial-08-cs.aspx</a>
        </p>
        <p>
          <a title="http://blog.codeville.net/2008/07/04/options-for-deploying-aspnet-mvc-to-iis-6/" href="http://blog.codeville.net/2008/07/04/options-for-deploying-aspnet-mvc-to-iis-6/">http://blog.codeville.net/2008/07/04/options-for-deploying-aspnet-mvc-to-iis-6/</a>
        </p>
        <p>
Instead of using the registermvc.wcf script, you can add a new extension to IIS that
is mapped to the ASP.NET framework by hand. When adding a new extension yourself,
make sure that the checkbox labeled <b>Verify that file exists</b> is <font size="6">not</font> checked.
</p>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=314c1a07-53ce-4625-a1c1-2790e3366024" />
      </body>
      <title>How to deploy ASP.Net MVC to IIS6</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,314c1a07-53ce-4625-a1c1-2790e3366024.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,314c1a07-53ce-4625-a1c1-2790e3366024.aspx</link>
      <pubDate>Thu, 29 Oct 2009 15:52:05 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a title="http://www.asp.net/learn/mvc/tutorial-08-cs.aspx" href="http://www.asp.net/learn/mvc/tutorial-08-cs.aspx"&gt;http://www.asp.net/learn/mvc/tutorial-08-cs.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a title="http://blog.codeville.net/2008/07/04/options-for-deploying-aspnet-mvc-to-iis-6/" href="http://blog.codeville.net/2008/07/04/options-for-deploying-aspnet-mvc-to-iis-6/"&gt;http://blog.codeville.net/2008/07/04/options-for-deploying-aspnet-mvc-to-iis-6/&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Instead of using the registermvc.wcf script, you can add a new extension to IIS that
is mapped to the ASP.NET framework by hand. When adding a new extension yourself,
make sure that the checkbox labeled &lt;b&gt;Verify that file exists&lt;/b&gt; is &lt;font size="6"&gt;not&lt;/font&gt; checked.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=314c1a07-53ce-4625-a1c1-2790e3366024" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,314c1a07-53ce-4625-a1c1-2790e3366024.aspx</comments>
      <category>DotNet;DotNet / ASP</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=19a6c2ce-6f7e-479c-8099-f8a7d3704a80</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,19a6c2ce-6f7e-479c-8099-f8a7d3704a80.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,19a6c2ce-6f7e-479c-8099-f8a7d3704a80.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=19a6c2ce-6f7e-479c-8099-f8a7d3704a80</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
HttpContext.Request.PhysicalApplicationPath + strYourImageFolderName\Image;
</p>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=19a6c2ce-6f7e-479c-8099-f8a7d3704a80" />
      </body>
      <title>mvc web path</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,19a6c2ce-6f7e-479c-8099-f8a7d3704a80.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,19a6c2ce-6f7e-479c-8099-f8a7d3704a80.aspx</link>
      <pubDate>Thu, 29 Oct 2009 14:51:57 GMT</pubDate>
      <description>&lt;p&gt;
HttpContext.Request.PhysicalApplicationPath + strYourImageFolderName\Image;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=19a6c2ce-6f7e-479c-8099-f8a7d3704a80" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,19a6c2ce-6f7e-479c-8099-f8a7d3704a80.aspx</comments>
      <category>DotNet / ASP</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=05207d1a-006a-42f6-81cc-34bc3150d231</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,05207d1a-006a-42f6-81cc-34bc3150d231.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,05207d1a-006a-42f6-81cc-34bc3150d231.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=05207d1a-006a-42f6-81cc-34bc3150d231</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a title="http://www.odetocode.com/articles/450.aspx" href="http://www.odetocode.com/articles/450.aspx">http://www.odetocode.com/articles/450.aspx</a>
        </p>
        <p>
          <a title="http://msdn.microsoft.com/en-us/library/ms178419.aspx" href="http://msdn.microsoft.com/en-us/library/ms178419.aspx">http://msdn.microsoft.com/en-us/library/ms178419.aspx</a>
        </p>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=05207d1a-006a-42f6-81cc-34bc3150d231" />
      </body>
      <title>Master Page tricks and how to custmoize SiteMapPath control</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,05207d1a-006a-42f6-81cc-34bc3150d231.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,05207d1a-006a-42f6-81cc-34bc3150d231.aspx</link>
      <pubDate>Fri, 10 Jul 2009 17:31:29 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a title="http://www.odetocode.com/articles/450.aspx" href="http://www.odetocode.com/articles/450.aspx"&gt;http://www.odetocode.com/articles/450.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a title="http://msdn.microsoft.com/en-us/library/ms178419.aspx" href="http://msdn.microsoft.com/en-us/library/ms178419.aspx"&gt;http://msdn.microsoft.com/en-us/library/ms178419.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=05207d1a-006a-42f6-81cc-34bc3150d231" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,05207d1a-006a-42f6-81cc-34bc3150d231.aspx</comments>
      <category>DotNet / ASP</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=05d4a7b2-2221-4db8-bcbc-c357307bb1af</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,05d4a7b2-2221-4db8-bcbc-c357307bb1af.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,05d4a7b2-2221-4db8-bcbc-c357307bb1af.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=05d4a7b2-2221-4db8-bcbc-c357307bb1af</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
From <a title="http://www.codethinked.com/" href="http://www.codethinked.com/">http://www.codethinked.com/</a></p>
        <p>
  
</p>
        <p>
          <a href="http://codeclimber.net.nz/default.aspx">
            <strong>Simone Chiaretta’s CodeClimber</strong>
          </a> -
A good friend, and a better blogger. Simone is an ASP.NET MVP and is co-writing the
book “Beginning ASP.NET MVC 1.0” by Wrox. Simone blogs about all sorts of different
ASP.NET MVC topics, and will certainly bring tons more content once he finishes his
book. He is also an active developer on the Subtext project. 
</p>
        <p>
  
</p>
        <p>
          <a href="http://www.stephenwalther.com/blog/">
            <strong>Stephen Walther</strong>
          </a> -
Stephen is a Senior Program Manager at Microsoft where he creates much of the tutorial
content on the <a href="http://www.asp.net/mvc">www.asp.net/mvc</a> website. Somehow
he also finds time to put up tons of helpful posts on his personal blog. He is also
authoring the book “ASP.NET MVC Framework Unleashed” by Sams. 
</p>
        <p>
  
</p>
        <p>
          <a href="http://weblogs.asp.net/rashid/">
            <strong>Kazi Manzur Rashid</strong>
          </a> -
Kazi is surprisingly the only person on this list who isn’t writing a book! He is
also an ASP.NET MVP and his claim to fame is <a href="http://www.dotnetshoutout.com">dotnetshoutout.com</a> (which
is a great site) and the open source <a href="http://www.codeplex.com/Kigg">Kigg</a> project.
He writes tons of posts on ASP.NET MVC, and has recently been on quite a run with
many lengthy and in-depth articles. 
</p>
        <p>
  
</p>
        <p>
          <a href="http://blog.maartenballiauw.be/">
            <strong>Maarten Balliauw</strong>
          </a> -
Maarten is authoring the book ASP.NET MVC 1.0 Quickly by Packt. I’m not sure how Maarten
has time to write the book and his blog, because he has been pumping out quite a few
awesome ASP.NET MVC posts recently. 
</p>
        <p>
  
</p>
        <p>
          <a href="http://blog.codeville.net/">
            <strong>Steve Sanderson</strong>
          </a> - Steve
is the author of Pro ASP.NET MVC Framework by Apress and like these other guys, still
finds time to write some good informative posts on his blog. He is also the author
of the <a href="http://xval.codeplex.com/">xVal validation framework</a> which aims
to help developers more easily tie domain validations to the front-end web application. 
</p>
        <p>
  
</p>
        <p>
          <a href="http://msmvps.com/blogs/luisabreu/default.aspx">
            <strong>Luis Abreau</strong>
          </a> –
This one is a bonus, and was added because of Marwan's comment below. I went and checked
it out, and there are many great little ASP.NET MVC tidbits on this guys blog. Too
bad there isn't much information about him at all. It looks like he might be a current
or former MVP, I don't know. He has a linked in profile, but not too much info there
other than the fact that he is in Portugal. So lots of good ASP.NET MVC information,
but other than that, I don't know what to tell you about the guy!
</p>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=05d4a7b2-2221-4db8-bcbc-c357307bb1af" />
      </body>
      <title>5 Blogs ASP.NET MVC Developers Should Be Following</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,05d4a7b2-2221-4db8-bcbc-c357307bb1af.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,05d4a7b2-2221-4db8-bcbc-c357307bb1af.aspx</link>
      <pubDate>Mon, 20 Apr 2009 16:16:55 GMT</pubDate>
      <description>&lt;p&gt;
From &lt;a title="http://www.codethinked.com/" href="http://www.codethinked.com/"&gt;http://www.codethinked.com/&lt;/a&gt; 
&lt;p&gt;
&amp;nbsp; 
&lt;p&gt;
&lt;a href="http://codeclimber.net.nz/default.aspx"&gt;&lt;strong&gt;Simone Chiaretta’s CodeClimber&lt;/strong&gt;&lt;/a&gt; -
A good friend, and a better blogger. Simone is an ASP.NET MVP and is co-writing the
book “Beginning ASP.NET MVC 1.0” by Wrox. Simone blogs about all sorts of different
ASP.NET MVC topics, and will certainly bring tons more content once he finishes his
book. He is also an active developer on the Subtext project. 
&lt;p&gt;
&amp;nbsp; 
&lt;p&gt;
&lt;a href="http://www.stephenwalther.com/blog/"&gt;&lt;strong&gt;Stephen Walther&lt;/strong&gt;&lt;/a&gt; -
Stephen is a Senior Program Manager at Microsoft where he creates much of the tutorial
content on the &lt;a href="http://www.asp.net/mvc"&gt;www.asp.net/mvc&lt;/a&gt; website. Somehow
he also finds time to put up tons of helpful posts on his personal blog. He is also
authoring the book “ASP.NET MVC Framework Unleashed” by Sams. 
&lt;p&gt;
&amp;nbsp; 
&lt;p&gt;
&lt;a href="http://weblogs.asp.net/rashid/"&gt;&lt;strong&gt;Kazi Manzur Rashid&lt;/strong&gt;&lt;/a&gt; -
Kazi is surprisingly the only person on this list who isn’t writing a book! He is
also an ASP.NET MVP and his claim to fame is &lt;a href="http://www.dotnetshoutout.com"&gt;dotnetshoutout.com&lt;/a&gt; (which
is a great site) and the open source &lt;a href="http://www.codeplex.com/Kigg"&gt;Kigg&lt;/a&gt; project.
He writes tons of posts on ASP.NET MVC, and has recently been on quite a run with
many lengthy and in-depth articles. 
&lt;p&gt;
&amp;nbsp; 
&lt;p&gt;
&lt;a href="http://blog.maartenballiauw.be/"&gt;&lt;strong&gt;Maarten Balliauw&lt;/strong&gt;&lt;/a&gt; -
Maarten is authoring the book ASP.NET MVC 1.0 Quickly by Packt. I’m not sure how Maarten
has time to write the book and his blog, because he has been pumping out quite a few
awesome ASP.NET MVC posts recently. 
&lt;p&gt;
&amp;nbsp; 
&lt;p&gt;
&lt;a href="http://blog.codeville.net/"&gt;&lt;strong&gt;Steve Sanderson&lt;/strong&gt;&lt;/a&gt; - Steve
is the author of Pro ASP.NET MVC Framework by Apress and like these other guys, still
finds time to write some good informative posts on his blog. He is also the author
of the &lt;a href="http://xval.codeplex.com/"&gt;xVal validation framework&lt;/a&gt; which aims
to help developers more easily tie domain validations to the front-end web application. 
&lt;p&gt;
&amp;nbsp; 
&lt;p&gt;
&lt;a href="http://msmvps.com/blogs/luisabreu/default.aspx"&gt;&lt;strong&gt;Luis Abreau&lt;/strong&gt;&lt;/a&gt; –
This one is a bonus, and was added because of Marwan's comment below. I went and checked
it out, and there are many great little ASP.NET MVC tidbits on this guys blog. Too
bad there isn't much information about him at all. It looks like he might be a current
or former MVP, I don't know. He has a linked in profile, but not too much info there
other than the fact that he is in Portugal. So lots of good ASP.NET MVC information,
but other than that, I don't know what to tell you about the guy!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=05d4a7b2-2221-4db8-bcbc-c357307bb1af" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,05d4a7b2-2221-4db8-bcbc-c357307bb1af.aspx</comments>
      <category>DotNet;DotNet / ASP</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=30cee13d-a78c-4564-8496-4f4f763c3515</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,30cee13d-a78c-4564-8496-4f4f763c3515.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,30cee13d-a78c-4564-8496-4f4f763c3515.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=30cee13d-a78c-4564-8496-4f4f763c3515</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
How to: Configure Multiple Site Maps and Site-Map Providers <a title="http://msdn.microsoft.com/en-us/library/ms178426.aspx" href="http://msdn.microsoft.com/en-us/library/ms178426.aspx">http://msdn.microsoft.com/en-us/library/ms178426.aspx</a></p>
        <p>
  
</p>
        <p>
Building our Master Page and Site Navigation Structure <a title="http://weblogs.asp.net/scottgu/archive/2006/01/17/435765.aspx" href="http://weblogs.asp.net/scottgu/archive/2006/01/17/435765.aspx ">http://weblogs.asp.net/scottgu/archive/2006/01/17/435765.aspx </a></p>
        <p>
ASP.NET 2.0 Site Navigation Features <a title="http://weblogs.asp.net/scottgu/archive/2005/11/20/431019.aspx" href="http://weblogs.asp.net/scottgu/archive/2005/11/20/431019.aspx">http://weblogs.asp.net/scottgu/archive/2005/11/20/431019.aspx</a></p>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=30cee13d-a78c-4564-8496-4f4f763c3515" />
      </body>
      <title>ASP.Net Site Map and Menu</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,30cee13d-a78c-4564-8496-4f4f763c3515.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,30cee13d-a78c-4564-8496-4f4f763c3515.aspx</link>
      <pubDate>Thu, 26 Mar 2009 15:33:34 GMT</pubDate>
      <description>&lt;p&gt;
How to: Configure Multiple Site Maps and Site-Map Providers &lt;a title="http://msdn.microsoft.com/en-us/library/ms178426.aspx" href="http://msdn.microsoft.com/en-us/library/ms178426.aspx"&gt;http://msdn.microsoft.com/en-us/library/ms178426.aspx&lt;/a&gt; 
&lt;p&gt;
&amp;nbsp; 
&lt;p&gt;
Building our Master Page and Site Navigation Structure &lt;a title="http://weblogs.asp.net/scottgu/archive/2006/01/17/435765.aspx" href="http://weblogs.asp.net/scottgu/archive/2006/01/17/435765.aspx "&gt;http://weblogs.asp.net/scottgu/archive/2006/01/17/435765.aspx &lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
ASP.NET 2.0 Site Navigation Features &lt;a title="http://weblogs.asp.net/scottgu/archive/2005/11/20/431019.aspx" href="http://weblogs.asp.net/scottgu/archive/2005/11/20/431019.aspx"&gt;http://weblogs.asp.net/scottgu/archive/2005/11/20/431019.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=30cee13d-a78c-4564-8496-4f4f763c3515" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,30cee13d-a78c-4564-8496-4f4f763c3515.aspx</comments>
      <category>DotNet / ASP</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=7a65d3f0-7173-43e0-b689-64532c8c19c5</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,7a65d3f0-7173-43e0-b689-64532c8c19c5.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,7a65d3f0-7173-43e0-b689-64532c8c19c5.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=7a65d3f0-7173-43e0-b689-64532c8c19c5</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a title="http://msdn.microsoft.com/en-us/library/xxwa0ff0.aspx" href="http://msdn.microsoft.com/en-us/library/xxwa0ff0.aspx">http://msdn.microsoft.com/en-us/library/xxwa0ff0.aspx</a>
        </p>
        <p>
Working with ASP.NET Master Pages Programmatically <a title="http://msdn.microsoft.com/en-us/library/c8y19k6h.aspx" href="http://msdn.microsoft.com/en-us/library/c8y19k6h.aspx">http://msdn.microsoft.com/en-us/library/c8y19k6h.aspx</a></p>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=7a65d3f0-7173-43e0-b689-64532c8c19c5" />
      </body>
      <title>How to reference ASP.NET Master Page Content</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,7a65d3f0-7173-43e0-b689-64532c8c19c5.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,7a65d3f0-7173-43e0-b689-64532c8c19c5.aspx</link>
      <pubDate>Thu, 19 Mar 2009 15:35:56 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a title="http://msdn.microsoft.com/en-us/library/xxwa0ff0.aspx" href="http://msdn.microsoft.com/en-us/library/xxwa0ff0.aspx"&gt;http://msdn.microsoft.com/en-us/library/xxwa0ff0.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Working with ASP.NET Master Pages Programmatically &lt;a title="http://msdn.microsoft.com/en-us/library/c8y19k6h.aspx" href="http://msdn.microsoft.com/en-us/library/c8y19k6h.aspx"&gt;http://msdn.microsoft.com/en-us/library/c8y19k6h.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=7a65d3f0-7173-43e0-b689-64532c8c19c5" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,7a65d3f0-7173-43e0-b689-64532c8c19c5.aspx</comments>
      <category>DotNet / ASP</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=2945ffa9-228c-4f10-bb19-666ecc94b3fc</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,2945ffa9-228c-4f10-bb19-666ecc94b3fc.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,2945ffa9-228c-4f10-bb19-666ecc94b3fc.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=2945ffa9-228c-4f10-bb19-666ecc94b3fc</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">http://www.singular.co.nz/blog/archive/2007/12/20/shortguid-a-shorter-and-url-friendly-guid-in-c-sharp.aspx<img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=2945ffa9-228c-4f10-bb19-666ecc94b3fc" /></body>
      <title>Good Utility Class for Short GUID Expression</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,2945ffa9-228c-4f10-bb19-666ecc94b3fc.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,2945ffa9-228c-4f10-bb19-666ecc94b3fc.aspx</link>
      <pubDate>Thu, 26 Feb 2009 08:45:48 GMT</pubDate>
      <description>http://www.singular.co.nz/blog/archive/2007/12/20/shortguid-a-shorter-and-url-friendly-guid-in-c-sharp.aspx&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=2945ffa9-228c-4f10-bb19-666ecc94b3fc" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,2945ffa9-228c-4f10-bb19-666ecc94b3fc.aspx</comments>
      <category>DotNet / ASP;Web</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=b9fb0bc3-d60e-4461-ab75-31ac6e8527e3</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,b9fb0bc3-d60e-4461-ab75-31ac6e8527e3.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,b9fb0bc3-d60e-4461-ab75-31ac6e8527e3.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=b9fb0bc3-d60e-4461-ab75-31ac6e8527e3</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <h4>App-Domain could not be created. Error: 0x80131902
</h4>
Mike Stone tonight came across an interesting issue, not with rainbow, but an issue
nonetheless.<br />
When he downloaded and went to run Rainbow 2.0 He came accross the following message<br />
"Failed to execute request because the App-Domain could not be created. Error: 0x80131902"<br />
Basically, this happens on first time 2.0 runs sometimes, not sure why, but the following
seems to fix the problem. My suspicions and research lead me to believe it has to
do with web servies referenced. To fix it, try the following.... 
<ol><li>
With a command window, get to the latest version of .net under 
</li><li>
C:\Windows\Microsoft.Net\Framework\ 
</li><li>
Now run the following command: "net stop w3svc" to stop web services. 
</li><li>
Then use "aspnet_regiis.exe -ua" to uninstall all instances of ASP.NET from IIS. 
</li><li>
Follow with "aspnet_regiis.exe -i" to install ASP.NET into IIS. 
</li><li>
Now restart web services with "net start w3svc". 
</li></ol><p>
Published venerdì 10 marzo 2006 4.52 by <a href="http://community.rainbowportal.net/user/Profile.aspx?UserID=2113">Jonathan</a></p><img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=b9fb0bc3-d60e-4461-ab75-31ac6e8527e3" /></body>
      <title>App-Domain Creation Error in IIS</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,b9fb0bc3-d60e-4461-ab75-31ac6e8527e3.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,b9fb0bc3-d60e-4461-ab75-31ac6e8527e3.aspx</link>
      <pubDate>Fri, 09 Jan 2009 05:35:00 GMT</pubDate>
      <description>&lt;h4&gt;App-Domain could not be created. Error: 0x80131902
&lt;/h4&gt;
Mike Stone tonight came across an interesting issue, not with rainbow, but an issue
nonetheless.&lt;br&gt;
When he downloaded and went to run Rainbow 2.0 He came accross the following message&lt;br&gt;
"Failed to execute request because the App-Domain could not be created. Error: 0x80131902"&lt;br&gt;
Basically, this happens on first time 2.0 runs sometimes, not sure why, but the following
seems to fix the problem. My suspicions and research lead me to believe it has to
do with web servies referenced. To fix it, try the following.... 
&lt;ol&gt;
&lt;li&gt;
With a command window, get to the latest version of .net under 
&lt;li&gt;
C:\Windows\Microsoft.Net\Framework\ 
&lt;li&gt;
Now run the following command: "net stop w3svc" to stop web services. 
&lt;li&gt;
Then use "aspnet_regiis.exe -ua" to uninstall all instances of ASP.NET from IIS. 
&lt;li&gt;
Follow with "aspnet_regiis.exe -i" to install ASP.NET into IIS. 
&lt;li&gt;
Now restart web services with "net start w3svc". 
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
Published venerdì 10 marzo 2006 4.52 by &lt;a href="http://community.rainbowportal.net/user/Profile.aspx?UserID=2113"&gt;Jonathan&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=b9fb0bc3-d60e-4461-ab75-31ac6e8527e3" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,b9fb0bc3-d60e-4461-ab75-31ac6e8527e3.aspx</comments>
      <category>DotNet / ASP</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=d892f687-f358-4319-ad72-d2034d8714ac</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,d892f687-f358-4319-ad72-d2034d8714ac.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,d892f687-f358-4319-ad72-d2034d8714ac.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=d892f687-f358-4319-ad72-d2034d8714ac</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a title="http://www.15seconds.com/issue/020417.htm" href="http://www.15seconds.com/issue/020417.htm">http://www.15seconds.com/issue/020417.htm</a>
        </p>
        <p>
ASP.NET request processing is based on a pipeline model in which ASP.NET passes http
requests to all the modules in the pipeline. Each module receives the http request
and has full control over it. The module can play with the request in any way it sees
fit. Once the request passes through all of the HTTP modules, it is eventually served
by an HTTP handler. The HTTP handler performs some processing on it, and the result
again passes through the HTTP modules in the pipeline.
</p>
        <p>
          <img src="http://www.15seconds.com/graphics/issue/020417_01.jpg" />
        </p>
        <p>
Notice that during the processing of an http request, only one HTTP handler will be
called, whereas more than one HTTP modules can be called.
</p>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=d892f687-f358-4319-ad72-d2034d8714ac" />
      </body>
      <title>Http Handlers and HTTP Modules</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,d892f687-f358-4319-ad72-d2034d8714ac.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,d892f687-f358-4319-ad72-d2034d8714ac.aspx</link>
      <pubDate>Fri, 01 Aug 2008 14:27:51 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a title="http://www.15seconds.com/issue/020417.htm" href="http://www.15seconds.com/issue/020417.htm"&gt;http://www.15seconds.com/issue/020417.htm&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
ASP.NET request processing is based on a pipeline model in which ASP.NET passes http
requests to all the modules in the pipeline. Each module receives the http request
and has full control over it. The module can play with the request in any way it sees
fit. Once the request passes through all of the HTTP modules, it is eventually served
by an HTTP handler. The HTTP handler performs some processing on it, and the result
again passes through the HTTP modules in the pipeline.
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.15seconds.com/graphics/issue/020417_01.jpg"&gt;
&lt;/p&gt;
&lt;p&gt;
Notice that during the processing of an http request, only one HTTP handler will be
called, whereas more than one HTTP modules can be called.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=d892f687-f358-4319-ad72-d2034d8714ac" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,d892f687-f358-4319-ad72-d2034d8714ac.aspx</comments>
      <category>DotNet / ASP</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=ee3fc3c6-8655-4bc0-9416-498314126d31</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,ee3fc3c6-8655-4bc0-9416-498314126d31.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,ee3fc3c6-8655-4bc0-9416-498314126d31.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=ee3fc3c6-8655-4bc0-9416-498314126d31</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a title="http://hi.baidu.com/yizusong/blog/item/cf9b8cefff611f12fdfa3cb8.html" href="http://hi.baidu.com/yizusong/blog/item/cf9b8cefff611f12fdfa3cb8.html">http://hi.baidu.com/yizusong/blog/item/cf9b8cefff611f12fdfa3cb8.html</a>
        </p>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=ee3fc3c6-8655-4bc0-9416-498314126d31" />
      </body>
      <title>FCKEdit</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,ee3fc3c6-8655-4bc0-9416-498314126d31.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,ee3fc3c6-8655-4bc0-9416-498314126d31.aspx</link>
      <pubDate>Thu, 17 Apr 2008 14:20:13 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a title="http://hi.baidu.com/yizusong/blog/item/cf9b8cefff611f12fdfa3cb8.html" href="http://hi.baidu.com/yizusong/blog/item/cf9b8cefff611f12fdfa3cb8.html"&gt;http://hi.baidu.com/yizusong/blog/item/cf9b8cefff611f12fdfa3cb8.html&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=ee3fc3c6-8655-4bc0-9416-498314126d31" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,ee3fc3c6-8655-4bc0-9416-498314126d31.aspx</comments>
      <category>DotNet / ASP;Projects / deals</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=9108cd30-b84e-4834-8c4b-908f143a5bf5</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,9108cd30-b84e-4834-8c4b-908f143a5bf5.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,9108cd30-b84e-4834-8c4b-908f143a5bf5.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=9108cd30-b84e-4834-8c4b-908f143a5bf5</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a title="http://aspnet.4guysfromrolla.com/articles/120606-1.aspx#postadlink" href="http://aspnet.4guysfromrolla.com/articles/120606-1.aspx#postadlink">http://aspnet.4guysfromrolla.com/articles/120606-1.aspx#postadlink</a>
        </p>
        <p>
          <a title="http://www.odetocode.com/Articles/172.aspx" href="http://www.odetocode.com/Articles/172.aspx">http://www.odetocode.com/Articles/172.aspx</a>
        </p>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=9108cd30-b84e-4834-8c4b-908f143a5bf5" />
      </body>
      <title>Upload and show images</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,9108cd30-b84e-4834-8c4b-908f143a5bf5.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,9108cd30-b84e-4834-8c4b-908f143a5bf5.aspx</link>
      <pubDate>Thu, 17 Apr 2008 04:17:48 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a title="http://aspnet.4guysfromrolla.com/articles/120606-1.aspx#postadlink" href="http://aspnet.4guysfromrolla.com/articles/120606-1.aspx#postadlink"&gt;http://aspnet.4guysfromrolla.com/articles/120606-1.aspx#postadlink&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a title="http://www.odetocode.com/Articles/172.aspx" href="http://www.odetocode.com/Articles/172.aspx"&gt;http://www.odetocode.com/Articles/172.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=9108cd30-b84e-4834-8c4b-908f143a5bf5" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,9108cd30-b84e-4834-8c4b-908f143a5bf5.aspx</comments>
      <category>DotNet / ASP;Projects / deals</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=a1c803a2-afc2-4af6-b761-8b0dcf59ddf4</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,a1c803a2-afc2-4af6-b761-8b0dcf59ddf4.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,a1c803a2-afc2-4af6-b761-8b0dcf59ddf4.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=a1c803a2-afc2-4af6-b761-8b0dcf59ddf4</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a title="http://freetextbox.com/forums/thread/8831.aspx" href="http://freetextbox.com/forums/thread/8831.aspx">http://freetextbox.com/forums/thread/8831.aspx</a>
        </p>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=a1c803a2-afc2-4af6-b761-8b0dcf59ddf4" />
      </body>
      <title>Freetextbox</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,a1c803a2-afc2-4af6-b761-8b0dcf59ddf4.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,a1c803a2-afc2-4af6-b761-8b0dcf59ddf4.aspx</link>
      <pubDate>Thu, 17 Apr 2008 04:16:48 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a title="http://freetextbox.com/forums/thread/8831.aspx" href="http://freetextbox.com/forums/thread/8831.aspx"&gt;http://freetextbox.com/forums/thread/8831.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=a1c803a2-afc2-4af6-b761-8b0dcf59ddf4" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,a1c803a2-afc2-4af6-b761-8b0dcf59ddf4.aspx</comments>
      <category>DotNet / ASP;Projects / deals</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=e0d99d7c-e3ef-429f-b4e0-fbb99de06cef</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,e0d99d7c-e3ef-429f-b4e0-fbb99de06cef.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,e0d99d7c-e3ef-429f-b4e0-fbb99de06cef.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=e0d99d7c-e3ef-429f-b4e0-fbb99de06cef</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
IIS 6 doesn't handle extensionless URLs. You'll need to change your routes to use
the .mvc extension. 
</p>
        <p>
For example, 
</p>
        <p>
  routes.Add(new Route("Links.mvc/{categoryName}",... 
</p>
        <p>
Make sure that IIS 6 maps .mvc to the aspnet_isapi.dll.
</p>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=e0d99d7c-e3ef-429f-b4e0-fbb99de06cef" />
      </body>
      <title>Deploy MVC application on Server with IIS6</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,e0d99d7c-e3ef-429f-b4e0-fbb99de06cef.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,e0d99d7c-e3ef-429f-b4e0-fbb99de06cef.aspx</link>
      <pubDate>Fri, 04 Apr 2008 20:26:40 GMT</pubDate>
      <description>&lt;p&gt;
IIS 6 doesn't handle extensionless URLs. You'll need to change your routes to use
the .mvc extension. 
&lt;p&gt;
For example, 
&lt;p&gt;
&amp;nbsp; routes.Add(new Route("Links.mvc/{categoryName}",... 
&lt;p&gt;
Make sure that IIS 6 maps .mvc to the aspnet_isapi.dll.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=e0d99d7c-e3ef-429f-b4e0-fbb99de06cef" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,e0d99d7c-e3ef-429f-b4e0-fbb99de06cef.aspx</comments>
      <category>DotNet / ASP;Projects / Mobile Navigator Website;Web</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=4f57c63d-7ebb-4722-8069-569df238959e</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,4f57c63d-7ebb-4722-8069-569df238959e.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,4f57c63d-7ebb-4722-8069-569df238959e.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=4f57c63d-7ebb-4722-8069-569df238959e</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a title="http://wiki.asp.net/page.aspx/295/how-to-postback-asynchornously-from-inside-a-gridview/" href="http://wiki.asp.net/page.aspx/295/how-to-postback-asynchornously-from-inside-a-gridview/">http://wiki.asp.net/page.aspx/295/how-to-postback-asynchornously-from-inside-a-gridview/</a>
        </p>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=4f57c63d-7ebb-4722-8069-569df238959e" />
      </body>
      <title>How to Postback Asynchronously from inside a GridView</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,4f57c63d-7ebb-4722-8069-569df238959e.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,4f57c63d-7ebb-4722-8069-569df238959e.aspx</link>
      <pubDate>Fri, 22 Feb 2008 22:04:15 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a title="http://wiki.asp.net/page.aspx/295/how-to-postback-asynchornously-from-inside-a-gridview/" href="http://wiki.asp.net/page.aspx/295/how-to-postback-asynchornously-from-inside-a-gridview/"&gt;http://wiki.asp.net/page.aspx/295/how-to-postback-asynchornously-from-inside-a-gridview/&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=4f57c63d-7ebb-4722-8069-569df238959e" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,4f57c63d-7ebb-4722-8069-569df238959e.aspx</comments>
      <category>DotNet / ASP;Web</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=2ff4ea36-5765-4dae-9604-d507ae8e45b8</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,2ff4ea36-5765-4dae-9604-d507ae8e45b8.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,2ff4ea36-5765-4dae-9604-d507ae8e45b8.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=2ff4ea36-5765-4dae-9604-d507ae8e45b8</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <pre>&lt;ItemTemplate&gt;
    &lt;tr class='&lt;%# (Container.DataItemIndex % 2 == 0)?"even":"odd" %&gt;'&gt;    
<br />
&lt;td&gt; 
<br />
&lt;asp:LinkButton ID="EditButton" CommandName="Edit" runat="server" 
<br />
Text="Edit"&gt;&lt;/asp:LinkButton&gt; &lt;asp:LinkButton ID="DeleteButton" 
<br />
OnClientClick="return confirm('Delete Record?');" 
<br />
CommandName="Delete" CommandArgument='&lt;%# Eval("CustomerID")%&gt;' 
<br />
runat="server" Text="Delete"&gt;&lt;/asp:LinkButton&gt; &lt;/td&gt; &lt;td&gt; &lt;%#
Eval("CustomerID") %&gt; &lt;/td&gt; &lt;td&gt; &lt;%# Eval("CompanyName") %&gt; &lt;/td&gt;
&lt;td&gt; &lt;%# Eval("ContactName") %&gt; &lt;/td&gt; &lt;td&gt; &lt;%# Eval("ContactTitle")
%&gt; &lt;/td&gt; &lt;td&gt; &lt;%# Eval("Address") %&gt; &lt;/td&gt; &lt;td&gt; &lt;%#
Eval("City") %&gt; &lt;/td&gt; &lt;td&gt; &lt;%# Eval("Country") %&gt; &lt;/td&gt;
&lt;td&gt; &lt;asp:LinkButton ID="lbOrders" runat="server" Text="Orders" 
<br />
CommandName="ViewOrders" 
<br />
CommandArgument='&lt;%# Eval("CustomerID") %&gt;' /&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr
id="trOrders" runat="server" visible="false"&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td
colspan="8"&gt; &lt;asp:GridView id="gvOrders" runat="server" AutoGenerateColumns="False"
BackColor="White" BorderColor="#999999" BorderStyle="Solid" 
<br />
BorderWidth="1px" CellPadding="3" ForeColor="Black" GridLines="Vertical" Width="500px"
EnableViewState="false"&gt; &lt;FooterStyle BackColor="#CCCCCC" /&gt; &lt;Columns&gt;
&lt;asp:BoundField DataField="OrderID" HeaderText="OrderID" SortExpression="OrderID"
/&gt; &lt;asp:BoundField DataField="OrderDate" HeaderText="OrderDate" SortExpression="OrderDate"
HtmlEncode="false" 
<br />
DataFormatString="{0:d}" /&gt; &lt;asp:BoundField DataField="RequiredDate" 
<br />
HeaderText="RequiredDate" SortExpression="RequiredDate" HtmlEncode="false" 
<br />
DataFormatString="{0:d}" /&gt; &lt;asp:BoundField DataField="ShippedDate" 
<br />
HeaderText="ShippedDate" SortExpression="ShippedDate" HtmlEncode="false" 
<br />
DataFormatString="{0:d}" /&gt; &lt;/Columns&gt; &lt;AlternatingRowStyle BackColor="#eaeaea"
/&gt; &lt;/asp:GridView&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/ItemTemplate&gt; </pre>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=2ff4ea36-5765-4dae-9604-d507ae8e45b8" />
      </body>
      <title>Simplifying asp.net listview control template (alternative template)</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,2ff4ea36-5765-4dae-9604-d507ae8e45b8.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,2ff4ea36-5765-4dae-9604-d507ae8e45b8.aspx</link>
      <pubDate>Fri, 22 Feb 2008 21:24:45 GMT</pubDate>
      <description>&lt;pre&gt;&amp;lt;ItemTemplate&amp;gt;
    &amp;lt;tr class='&amp;lt;%# (Container.DataItemIndex % 2 == 0)?"even":"odd" %&amp;gt;'&amp;gt;    
&lt;br&gt;
&amp;lt;td&amp;gt; 
&lt;br&gt;
&amp;lt;asp:LinkButton ID="EditButton" CommandName="Edit" runat="server" 
&lt;br&gt;
Text="Edit"&amp;gt;&amp;lt;/asp:LinkButton&amp;gt; &amp;lt;asp:LinkButton ID="DeleteButton" 
&lt;br&gt;
OnClientClick="return confirm('Delete Record?');" 
&lt;br&gt;
CommandName="Delete" CommandArgument='&amp;lt;%# Eval("CustomerID")%&amp;gt;' 
&lt;br&gt;
runat="server" Text="Delete"&amp;gt;&amp;lt;/asp:LinkButton&amp;gt; &amp;lt;/td&amp;gt; &amp;lt;td&amp;gt; &amp;lt;%#
Eval("CustomerID") %&amp;gt; &amp;lt;/td&amp;gt; &amp;lt;td&amp;gt; &amp;lt;%# Eval("CompanyName") %&amp;gt; &amp;lt;/td&amp;gt;
&amp;lt;td&amp;gt; &amp;lt;%# Eval("ContactName") %&amp;gt; &amp;lt;/td&amp;gt; &amp;lt;td&amp;gt; &amp;lt;%# Eval("ContactTitle")
%&amp;gt; &amp;lt;/td&amp;gt; &amp;lt;td&amp;gt; &amp;lt;%# Eval("Address") %&amp;gt; &amp;lt;/td&amp;gt; &amp;lt;td&amp;gt; &amp;lt;%#
Eval("City") %&amp;gt; &amp;lt;/td&amp;gt; &amp;lt;td&amp;gt; &amp;lt;%# Eval("Country") %&amp;gt; &amp;lt;/td&amp;gt;
&amp;lt;td&amp;gt; &amp;lt;asp:LinkButton ID="lbOrders" runat="server" Text="Orders" 
&lt;br&gt;
CommandName="ViewOrders" 
&lt;br&gt;
CommandArgument='&amp;lt;%# Eval("CustomerID") %&amp;gt;' /&amp;gt; &amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt; &amp;lt;tr
id="trOrders" runat="server" visible="false"&amp;gt; &amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt; &amp;lt;td
colspan="8"&amp;gt; &amp;lt;asp:GridView id="gvOrders" runat="server" AutoGenerateColumns="False"
BackColor="White" BorderColor="#999999" BorderStyle="Solid" 
&lt;br&gt;
BorderWidth="1px" CellPadding="3" ForeColor="Black" GridLines="Vertical" Width="500px"
EnableViewState="false"&amp;gt; &amp;lt;FooterStyle BackColor="#CCCCCC" /&amp;gt; &amp;lt;Columns&amp;gt;
&amp;lt;asp:BoundField DataField="OrderID" HeaderText="OrderID" SortExpression="OrderID"
/&amp;gt; &amp;lt;asp:BoundField DataField="OrderDate" HeaderText="OrderDate" SortExpression="OrderDate"
HtmlEncode="false" 
&lt;br&gt;
DataFormatString="{0:d}" /&amp;gt; &amp;lt;asp:BoundField DataField="RequiredDate" 
&lt;br&gt;
HeaderText="RequiredDate" SortExpression="RequiredDate" HtmlEncode="false" 
&lt;br&gt;
DataFormatString="{0:d}" /&amp;gt; &amp;lt;asp:BoundField DataField="ShippedDate" 
&lt;br&gt;
HeaderText="ShippedDate" SortExpression="ShippedDate" HtmlEncode="false" 
&lt;br&gt;
DataFormatString="{0:d}" /&amp;gt; &amp;lt;/Columns&amp;gt; &amp;lt;AlternatingRowStyle BackColor="#eaeaea"
/&amp;gt; &amp;lt;/asp:GridView&amp;gt; &amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt; &amp;lt;/ItemTemplate&amp;gt; &lt;/pre&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=2ff4ea36-5765-4dae-9604-d507ae8e45b8" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,2ff4ea36-5765-4dae-9604-d507ae8e45b8.aspx</comments>
      <category>DotNet / ASP;Web</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=106dec31-d52e-4bc8-895a-82994ed05e84</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,106dec31-d52e-4bc8-895a-82994ed05e84.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,106dec31-d52e-4bc8-895a-82994ed05e84.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=106dec31-d52e-4bc8-895a-82994ed05e84</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <strong>Update:</strong>
          <a href="http://weblogs.asp.net/dfindley/archive/2006/04/23/Migrating-from-System.Web.Mail-to-System.Net.Mail.aspx">David
Findley</a> posted something that I hadn't thought of using that's even easier. 
Adding this to web.config will dump email messages sent from an ASP.NET application
to the specified path:
</p>
        <pre>&lt;system.net&gt;
  &lt;mailSettings&gt;
    &lt;!--
    Production setting
    
    &lt;smtp deliveryMethod="Network"&gt;
      &lt;network host="localhost" port="25" /&gt;
    &lt;/smtp&gt;
    
    --&gt;

    &lt;smtp deliveryMethod="SpecifiedPickupDirectory"&gt;
      &lt;specifiedPickupDirectory pickupDirectoryLocation="C:\TestMessages" /&gt;
    &lt;/smtp&gt;

  &lt;/mailSettings&gt;
&lt;/system.net&gt;</pre>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=106dec31-d52e-4bc8-895a-82994ed05e84" />
      </body>
      <title>Email testing for ASP.NET</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,106dec31-d52e-4bc8-895a-82994ed05e84.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,106dec31-d52e-4bc8-895a-82994ed05e84.aspx</link>
      <pubDate>Fri, 22 Feb 2008 21:02:18 GMT</pubDate>
      <description>&lt;p&gt;
&lt;strong&gt;Update:&lt;/strong&gt; &lt;a href="http://weblogs.asp.net/dfindley/archive/2006/04/23/Migrating-from-System.Web.Mail-to-System.Net.Mail.aspx"&gt;David
Findley&lt;/a&gt; posted something that I hadn't thought of using that's even easier.&amp;nbsp;
Adding this to web.config will dump email messages sent from an ASP.NET application
to the specified path:&lt;pre&gt;&amp;lt;system.net&amp;gt;
  &amp;lt;mailSettings&amp;gt;
    &amp;lt;!--
    Production setting
    
    &amp;lt;smtp deliveryMethod="Network"&amp;gt;
      &amp;lt;network host="localhost" port="25" /&amp;gt;
    &amp;lt;/smtp&amp;gt;
    
    --&amp;gt;

    &amp;lt;smtp deliveryMethod="SpecifiedPickupDirectory"&amp;gt;
      &amp;lt;specifiedPickupDirectory pickupDirectoryLocation="C:\TestMessages" /&amp;gt;
    &amp;lt;/smtp&amp;gt;

  &amp;lt;/mailSettings&amp;gt;
&amp;lt;/system.net&amp;gt;&lt;/pre&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=106dec31-d52e-4bc8-895a-82994ed05e84" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,106dec31-d52e-4bc8-895a-82994ed05e84.aspx</comments>
      <category>DotNet / ASP;Web</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=f9a01848-7142-4840-82e2-2ef08529f15c</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,f9a01848-7142-4840-82e2-2ef08529f15c.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,f9a01848-7142-4840-82e2-2ef08529f15c.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=f9a01848-7142-4840-82e2-2ef08529f15c</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <h3>
          <a title="http://daptivate.com/archive/2008/02/12/top-10-best-practices-for-production-asp-net-applications.aspx" href="http://daptivate.com/archive/2008/02/12/top-10-best-practices-for-production-asp-net-applications.aspx">http://daptivate.com/archive/2008/02/12/top-10-best-practices-for-production-asp-net-applications.aspx</a>
        </h3>
        <h3>Top 10 Best Practices for Production ASP.NET Applications
</h3>
        <em>12 Feb, 2008.</em>
        <p>
In no particular order, here are the top ten things I've learned to pay attention
to when dealing with production ASP.NET applications.  Hopefully they will help
you save you some time and headaches.  As always, your thoughts and additions
are welcome. 
</p>
        <h4>1.  Generate new encryption keys
</h4>
        <p>
When moving an application to production for the first time it is a good idea to generate
new encryption keys.  This includes the machine validation key and decryption
key as well as any other custom keys your application may be using.  There is <a href="http://www.codeproject.com/KB/aspnet/machineKey.aspx">an
article on CodeProject</a> that talks about generating machineKeys specifically that
should be helpful with this. 
</p>
        <h4>2.  Encrypt sensitive sections of your web.config
</h4>
        <p>
This includes both the connection string and machine key sections.  See <a href="http://weblogs.asp.net/scottgu/archive/2006/01/09/434893.aspx">Scott
Guthrie's post</a> for some good references.  Note that if your application runs
in a clustered environment you will need to share a custom key using the RSA provider
as described in an <a href="http://msdn2.microsoft.com/en-us/library/68ze1hb2%28VS.80%29.aspx">MSDN
article</a>. 
</p>
        <h4>3.  Use trusted SQL connections
</h4>
        <p>
Both <a href="http://idunno.org/articles/276.aspx">Barry Dorrans</a> and <a href="http://weblogs.asp.net/achang/archive/2004/04/15/113866.aspx">Alex
Chang</a> have articles which discuss this in detail. 
</p>
        <h4>4.  Set retail="true" in your machine.config
</h4>
        <ol>
&lt;configuration&gt;
</ol>
        <br />
&lt;system.web&gt;<br />
&lt;deployment retail="true"/&gt;<br />
&lt;/system.web&gt;<br />
&lt;/configuration&gt;<br />
This will kill three birds with one stone.  It will force the 'debug' flag in
the web.config to be false,  it will disable page output tracing, and  it
will force the custom error page to be shown to remote users rather than the actual
exception or error message.  For more information you can read <a href="http://weblogs.asp.net/scottgu/archive/2006/04/11/442448.aspx">Scott
Guthrie's post</a> or the <a href="http://msdn2.microsoft.com/en-us/library/ms228298%28VS.80%29.aspx">MSDN
reference</a>.
<h4>5.  Create a new application pool for your site
</h4><p>
When setting up your new site for the first time do not share an existing application
pool.  Create a new application pool which will be used by only by the new web
application. 
</p><h4>6.  Set the memory limit for your application pool
</h4><p>
When creating the application pool, specifically set the memory limit rather than
the time limit which is set by default.  <a href="http://www.asp.net">Asp.net</a> has
a <a href="http://www.asp.net/learn/whitepapers/aspnet-and-iis6/">good whitepaper</a> which
explains the value of this: 
</p><blockquote><p>
By default IIS 6.0 does not set a limit on the amount of memory that IIS is allowed
to use. ASP.NET’s Cache feature relies on a limitation of memory so the Cache can
proactively remove unused items from memory. 
</p><p>
It is recommended that you configure the memory recycling feature of IIS 6.0.
</p></blockquote><h4>7.  Create and appropriately use an app_Offline.htm file
</h4><p>
There are many benefits to using this file.  It provides an easy way to take
your application offline in a somewhat user friendly way (you can at least have a
pretty explanation) while fixing critical issues or pushing a major update. 
It also forces an application restart in case you forget to do this for a deployment. 
Once again, ScottGu is the <a href="http://weblogs.asp.net/scottgu/archive/2006/04/09/442332.aspx">best
source</a> for more information on this. 
</p><h4>8.  Develop a repeatable deployment process and automate it
</h4><p>
It is way too easy to make mistakes when deploying any type of software.  This
is especially the case with software that uses configuration files that may be different
between the development, staging, or production environments.  I would argue
that the process you come up with is not nearly as important as it being easily repeatable
and automated.  You can fine tune the process as needed, but you don't want a
simple typo to bring a site down. 
</p><h4>9.  Build and reference release versions of all assemblies
</h4><p>
In addition to making sure ASP.NET is not configured in debug mode, also make sure
that your assemblies are not debug assemblies.  There are of course exceptions
if you are trying to solve a unique issue in your production environment ... but in
most cases you should always deploy with release builds for all assemblies. 
</p><h4>10.  Load test
</h4><p>
This goes without saying.  Inevitably, good load testing will uncover threading
and memory issues not otherwise considered.
</p><img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=f9a01848-7142-4840-82e2-2ef08529f15c" /></body>
      <title>Top 10 Best Practices for Production ASP.NET Applications</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,f9a01848-7142-4840-82e2-2ef08529f15c.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,f9a01848-7142-4840-82e2-2ef08529f15c.aspx</link>
      <pubDate>Tue, 19 Feb 2008 14:24:48 GMT</pubDate>
      <description>&lt;h3&gt;&lt;a title="http://daptivate.com/archive/2008/02/12/top-10-best-practices-for-production-asp-net-applications.aspx" href="http://daptivate.com/archive/2008/02/12/top-10-best-practices-for-production-asp-net-applications.aspx"&gt;http://daptivate.com/archive/2008/02/12/top-10-best-practices-for-production-asp-net-applications.aspx&lt;/a&gt;
&lt;/h3&gt;
&lt;h3&gt;Top 10 Best Practices for Production ASP.NET Applications
&lt;/h3&gt;
&lt;em&gt;12 Feb, 2008.&lt;/em&gt; 
&lt;p&gt;
In no particular order, here are the top ten things I've learned to pay attention
to when dealing with production ASP.NET applications.&amp;nbsp; Hopefully they will help
you save you some time and headaches.&amp;nbsp; As always, your thoughts and additions
are welcome. 
&lt;h4&gt;1.&amp;nbsp; Generate new encryption keys
&lt;/h4&gt;
&lt;p&gt;
When moving an application to production for the first time it is a good idea to generate
new encryption keys.&amp;nbsp; This includes the machine validation key and decryption
key as well as any other custom keys your application may be using.&amp;nbsp; There is &lt;a href="http://www.codeproject.com/KB/aspnet/machineKey.aspx"&gt;an
article on CodeProject&lt;/a&gt; that talks about generating machineKeys specifically that
should be helpful with this. 
&lt;h4&gt;2.&amp;nbsp; Encrypt sensitive sections of your web.config
&lt;/h4&gt;
&lt;p&gt;
This includes both the connection string and machine key sections.&amp;nbsp; See &lt;a href="http://weblogs.asp.net/scottgu/archive/2006/01/09/434893.aspx"&gt;Scott
Guthrie's post&lt;/a&gt; for some good references.&amp;nbsp; Note that if your application runs
in a clustered environment you will need to share a custom key using the RSA provider
as described in an &lt;a href="http://msdn2.microsoft.com/en-us/library/68ze1hb2%28VS.80%29.aspx"&gt;MSDN
article&lt;/a&gt;. 
&lt;h4&gt;3.&amp;nbsp; Use trusted SQL connections
&lt;/h4&gt;
&lt;p&gt;
Both &lt;a href="http://idunno.org/articles/276.aspx"&gt;Barry Dorrans&lt;/a&gt; and &lt;a href="http://weblogs.asp.net/achang/archive/2004/04/15/113866.aspx"&gt;Alex
Chang&lt;/a&gt; have articles which discuss this in detail. 
&lt;h4&gt;4.&amp;nbsp; Set retail="true" in your machine.config
&lt;/h4&gt;
&lt;ol&gt;
&amp;lt;configuration&amp;gt;&lt;br&gt;
&amp;lt;system.web&amp;gt;&lt;br&gt;
&amp;lt;deployment retail="true"/&amp;gt;&lt;br&gt;
&amp;lt;/system.web&amp;gt;&lt;br&gt;
&amp;lt;/configuration&amp;gt;&lt;br&gt;
This will kill three birds with one stone.&amp;nbsp; It will force the 'debug' flag in
the web.config to be false,&amp;nbsp; it will disable page output tracing, and&amp;nbsp; it
will force the custom error page to be shown to remote users rather than the actual
exception or error message.&amp;nbsp; For more information you can read &lt;a href="http://weblogs.asp.net/scottgu/archive/2006/04/11/442448.aspx"&gt;Scott
Guthrie's post&lt;/a&gt; or the &lt;a href="http://msdn2.microsoft.com/en-us/library/ms228298%28VS.80%29.aspx"&gt;MSDN
reference&lt;/a&gt;.&gt;
&lt;h4&gt;5.&amp;nbsp; Create a new application pool for your site
&lt;/h4&gt;
&lt;p&gt;
When setting up your new site for the first time do not share an existing application
pool.&amp;nbsp; Create a new application pool which will be used by only by the new web
application. 
&lt;h4&gt;6.&amp;nbsp; Set the memory limit for your application pool
&lt;/h4&gt;
&lt;p&gt;
When creating the application pool, specifically set the memory limit rather than
the time limit which is set by default.&amp;nbsp; &lt;a href="http://www.asp.net"&gt;Asp.net&lt;/a&gt; has
a &lt;a href="http://www.asp.net/learn/whitepapers/aspnet-and-iis6/"&gt;good whitepaper&lt;/a&gt; which
explains the value of this: &lt;blockquote&gt; 
&lt;p&gt;
By default IIS 6.0 does not set a limit on the amount of memory that IIS is allowed
to use. ASP.NET’s Cache feature relies on a limitation of memory so the Cache can
proactively remove unused items from memory. 
&lt;p&gt;
It is recommended that you configure the memory recycling feature of IIS 6.0.
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;h4&gt;7.&amp;nbsp; Create and appropriately use an app_Offline.htm file
&lt;/h4&gt;
&lt;p&gt;
There are many benefits to using this file.&amp;nbsp; It provides an easy way to take
your application offline in a somewhat user friendly way (you can at least have a
pretty explanation) while fixing critical issues or pushing a major update.&amp;nbsp;
It also forces an application restart in case you forget to do this for a deployment.&amp;nbsp;
Once again, ScottGu is the &lt;a href="http://weblogs.asp.net/scottgu/archive/2006/04/09/442332.aspx"&gt;best
source&lt;/a&gt; for more information on this. 
&lt;h4&gt;8.&amp;nbsp; Develop a repeatable deployment process and automate it
&lt;/h4&gt;
&lt;p&gt;
It is way too easy to make mistakes when deploying any type of software.&amp;nbsp; This
is especially the case with software that uses configuration files that may be different
between the development, staging, or production environments.&amp;nbsp; I would argue
that the process you come up with is not nearly as important as it being easily repeatable
and automated.&amp;nbsp; You can fine tune the process as needed, but you don't want a
simple typo to bring a site down. 
&lt;h4&gt;9.&amp;nbsp; Build and reference release versions of all assemblies
&lt;/h4&gt;
&lt;p&gt;
In addition to making sure ASP.NET is not configured in debug mode, also make sure
that your assemblies are not debug assemblies.&amp;nbsp; There are of course exceptions
if you are trying to solve a unique issue in your production environment ... but in
most cases you should always deploy with release builds for all assemblies. 
&lt;h4&gt;10.&amp;nbsp; Load test
&lt;/h4&gt;
&lt;p&gt;
This goes without saying.&amp;nbsp; Inevitably, good load testing will uncover threading
and memory issues not otherwise considered.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=f9a01848-7142-4840-82e2-2ef08529f15c" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,f9a01848-7142-4840-82e2-2ef08529f15c.aspx</comments>
      <category>DotNet / ASP;Web</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=1692c383-f758-4686-a7c3-dda64c6253f2</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,1692c383-f758-4686-a7c3-dda64c6253f2.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,1692c383-f758-4686-a7c3-dda64c6253f2.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=1692c383-f758-4686-a7c3-dda64c6253f2</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a title="http://www.aaronlerch.com/blog/2008/01/01/unifying-web-sites-and-web-services-with-the-aspnet-mvc-framework/" href="http://www.aaronlerch.com/blog/2008/01/01/unifying-web-sites-and-web-services-with-the-aspnet-mvc-framework/">http://www.aaronlerch.com/blog/2008/01/01/unifying-web-sites-and-web-services-with-the-aspnet-mvc-framework/</a>
        </p>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=1692c383-f758-4686-a7c3-dda64c6253f2" />
      </body>
      <title>Unifying Web &amp;quot;Sites&amp;quot; and Web Services with the ASP.NET MVC Framework</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,1692c383-f758-4686-a7c3-dda64c6253f2.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,1692c383-f758-4686-a7c3-dda64c6253f2.aspx</link>
      <pubDate>Fri, 11 Jan 2008 15:04:01 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a title="http://www.aaronlerch.com/blog/2008/01/01/unifying-web-sites-and-web-services-with-the-aspnet-mvc-framework/" href="http://www.aaronlerch.com/blog/2008/01/01/unifying-web-sites-and-web-services-with-the-aspnet-mvc-framework/"&gt;http://www.aaronlerch.com/blog/2008/01/01/unifying-web-sites-and-web-services-with-the-aspnet-mvc-framework/&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=1692c383-f758-4686-a7c3-dda64c6253f2" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,1692c383-f758-4686-a7c3-dda64c6253f2.aspx</comments>
      <category>DotNet / ASP;Web</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=1a115622-a165-4e3a-a852-1d9f9b2d701c</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,1a115622-a165-4e3a-a852-1d9f9b2d701c.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,1a115622-a165-4e3a-a852-1d9f9b2d701c.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=1a115622-a165-4e3a-a852-1d9f9b2d701c</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a title="http://www.aaronlerch.com/blog/2008/01/01/unifying-web-sites-and-web-services-with-the-aspnet-mvc-framework/" href="http://www.aaronlerch.com/blog/2008/01/01/unifying-web-sites-and-web-services-with-the-aspnet-mvc-framework/">http://www.aaronlerch.com/blog/2008/01/01/unifying-web-sites-and-web-services-with-the-aspnet-mvc-framework/</a>
        </p>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=1a115622-a165-4e3a-a852-1d9f9b2d701c" />
      </body>
      <title>Unifying Web &amp;quot;Sites&amp;quot; and Web Services with the ASP.NET MVC Framework</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,1a115622-a165-4e3a-a852-1d9f9b2d701c.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,1a115622-a165-4e3a-a852-1d9f9b2d701c.aspx</link>
      <pubDate>Fri, 11 Jan 2008 15:03:54 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a title="http://www.aaronlerch.com/blog/2008/01/01/unifying-web-sites-and-web-services-with-the-aspnet-mvc-framework/" href="http://www.aaronlerch.com/blog/2008/01/01/unifying-web-sites-and-web-services-with-the-aspnet-mvc-framework/"&gt;http://www.aaronlerch.com/blog/2008/01/01/unifying-web-sites-and-web-services-with-the-aspnet-mvc-framework/&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=1a115622-a165-4e3a-a852-1d9f9b2d701c" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,1a115622-a165-4e3a-a852-1d9f9b2d701c.aspx</comments>
      <category>DotNet / ASP;Web</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=6bee7aec-7c84-43cf-b7d1-6128c5171b45</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,6bee7aec-7c84-43cf-b7d1-6128c5171b45.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,6bee7aec-7c84-43cf-b7d1-6128c5171b45.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=6bee7aec-7c84-43cf-b7d1-6128c5171b45</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a title="http://www.imaginativeuniversal.com/SessionExpiredMonitorWithASPNETAJAX.aspx" href="http://www.imaginativeuniversal.com/SessionExpiredMonitorWithASPNETAJAX.aspx">http://www.imaginativeuniversal.com/SessionExpiredMonitorWithASPNETAJAX.aspx</a>
        </p>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=6bee7aec-7c84-43cf-b7d1-6128c5171b45" />
      </body>
      <title>Session Expired Monitor with ASP.NET AJAX</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,6bee7aec-7c84-43cf-b7d1-6128c5171b45.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,6bee7aec-7c84-43cf-b7d1-6128c5171b45.aspx</link>
      <pubDate>Fri, 11 Jan 2008 14:10:23 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a title="http://www.imaginativeuniversal.com/SessionExpiredMonitorWithASPNETAJAX.aspx" href="http://www.imaginativeuniversal.com/SessionExpiredMonitorWithASPNETAJAX.aspx"&gt;http://www.imaginativeuniversal.com/SessionExpiredMonitorWithASPNETAJAX.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=6bee7aec-7c84-43cf-b7d1-6128c5171b45" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,6bee7aec-7c84-43cf-b7d1-6128c5171b45.aspx</comments>
      <category>DotNet / ASP;Projects / YardSaleMap;Web</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=b1069887-98e6-44ff-bd20-1ee11b062b59</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,b1069887-98e6-44ff-bd20-1ee11b062b59.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,b1069887-98e6-44ff-bd20-1ee11b062b59.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=b1069887-98e6-44ff-bd20-1ee11b062b59</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a title="http://blog.emanuelebartolesi.com/post/2007/12/Log4net-Simple-way-to-use-in-your-Aspnet-application.aspx" href="http://blog.emanuelebartolesi.com/post/2007/12/Log4net-Simple-way-to-use-in-your-Aspnet-application.aspx">http://blog.emanuelebartolesi.com/post/2007/12/Log4net-Simple-way-to-use-in-your-Aspnet-application.aspx</a>
        </p>
        <p>
          <strong>Introduction</strong>
        </p>
        <p>
Log the actions of your applications is very important especially when you develop
new features or develop very difficult logical business.<br />
But it is also important when users use your applications to understand the critical
issues or problems.<br />
To implement quickly the log operations Apache developed an opensource library for
.Net developers. 
</p>
        <p>
          <strong>Download</strong>
        </p>
        <p>
You can download the latest version of Log4net from this <a href="http://logging.apache.org/log4net/download.html">location</a>. 
</p>
        <p>
          <strong>Add reference to your solution</strong>
        </p>
        <p>
In Visual Studio 2005 select Project -&gt; Add Reference.<br />
In the tab Browse, find and select the dll Log4net.dll in your local folder. 
</p>
        <p>
          <strong>Modify web.config</strong>
        </p>
        <p>
Into web.config file add this code into the section Configuration-&gt;Configsections:<br />
&lt;section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,
log4net"/&gt; 
</p>
        <p>
Yet, add the section: 
</p>
        <p>
&lt;log4net&gt; 
</p>
        <p>
&lt;appender name="RollingFile" type="log4net.Appender.RollingFileAppender"&gt; 
</p>
        <blockquote>
          <p>
&lt;file value="c:\temp\web.log" /&gt; 
</p>
          <p>
&lt;appendToFile value="true" /&gt; 
</p>
          <p>
&lt;maximumFileSize value="1024KB" /&gt; 
</p>
          <p>
&lt;maxSizeRollBackups value="10" /&gt; 
</p>
          <p>
&lt;layout type="log4net.Layout.PatternLayout"&gt; 
</p>
          <blockquote>
            <p>
&lt;conversionPattern value="%date %level %logger - %message%newline" /&gt; 
</p>
          </blockquote>
          <p>
&lt;/layout&gt; 
</p>
        </blockquote>
        <p>
&lt;/appender&gt; 
</p>
        <p>
&lt;root&gt; 
</p>
        <p>
&lt;level value="DEBUG" /&gt; 
</p>
        <blockquote>
          <p>
&lt;appender-ref ref="RollingFile" /&gt; 
</p>
        </blockquote>
        <p>
&lt;/root&gt; 
</p>
        <p>
&lt;/log4net&gt; 
</p>
        <p>
In this configuration will create a log file into the folder "c:\temp\" until its
size is 1024Kb.<br />
After this size the name of file will be web.log.1 until 10.<br />
At this <a href="http://logging.apache.org/log4net/release/config-examples.html">link</a> you
can find another configurations. 
</p>
        <p>
Global.asax 
</p>
        <p>
In the event "Application_Start" of the file Global.asax add this line:<br />
log4net.Config.XmlConfigurator.Configure();<br /><strong>Begin to log</strong></p>
        <p>
In every page you want to log something, add the static variable like below:<br />
private static readonly ILog log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); 
</p>
        <p>
This class has 5 levels of severity to log the operations: 
</p>
        <p>
log.Debug("log something at this level")<br />
log.Info("log something at this level")<br />
log.Warn("log something at this level");<br />
log.Error("log something at this level");<br />
log.Fatal("log something at this level"); 
</p>
        <p>
Simple and fast to use.<br />
You find the official documentation at this <a href="http://logging.apache.org/log4net/index.html">link</a>. 
</p>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=b1069887-98e6-44ff-bd20-1ee11b062b59" />
      </body>
      <title>simply adding log4net in Asp.net application</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,b1069887-98e6-44ff-bd20-1ee11b062b59.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,b1069887-98e6-44ff-bd20-1ee11b062b59.aspx</link>
      <pubDate>Mon, 07 Jan 2008 22:28:47 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a title="http://blog.emanuelebartolesi.com/post/2007/12/Log4net-Simple-way-to-use-in-your-Aspnet-application.aspx" href="http://blog.emanuelebartolesi.com/post/2007/12/Log4net-Simple-way-to-use-in-your-Aspnet-application.aspx"&gt;http://blog.emanuelebartolesi.com/post/2007/12/Log4net-Simple-way-to-use-in-your-Aspnet-application.aspx&lt;/a&gt; 
&lt;p&gt;
&lt;strong&gt;Introduction&lt;/strong&gt; 
&lt;p&gt;
Log the actions of your applications is very important especially when you develop
new features or develop very difficult logical business.&lt;br&gt;
But it is also important when users use your applications to understand the critical
issues or problems.&lt;br&gt;
To implement quickly the log operations Apache developed an opensource library for
.Net developers. 
&lt;p&gt;
&lt;strong&gt;Download&lt;/strong&gt; 
&lt;p&gt;
You can download the latest version of Log4net from this &lt;a href="http://logging.apache.org/log4net/download.html"&gt;location&lt;/a&gt;. 
&lt;p&gt;
&lt;strong&gt;Add reference to your solution&lt;/strong&gt; 
&lt;p&gt;
In Visual Studio 2005 select Project -&amp;gt; Add Reference.&lt;br&gt;
In the tab Browse, find and select the dll Log4net.dll in your local folder. 
&lt;p&gt;
&lt;strong&gt;Modify web.config&lt;/strong&gt; 
&lt;p&gt;
Into web.config file add this code into the section Configuration-&amp;gt;Configsections:&lt;br&gt;
&amp;lt;section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,
log4net"/&amp;gt; 
&lt;p&gt;
Yet, add the section: 
&lt;p&gt;
&amp;lt;log4net&amp;gt; 
&lt;p&gt;
&amp;lt;appender name="RollingFile" type="log4net.Appender.RollingFileAppender"&amp;gt; &lt;blockquote&gt; 
&lt;p&gt;
&amp;lt;file value="c:\temp\web.log" /&amp;gt; 
&lt;p&gt;
&amp;lt;appendToFile value="true" /&amp;gt; 
&lt;p&gt;
&amp;lt;maximumFileSize value="1024KB" /&amp;gt; 
&lt;p&gt;
&amp;lt;maxSizeRollBackups value="10" /&amp;gt; 
&lt;p&gt;
&amp;lt;layout type="log4net.Layout.PatternLayout"&amp;gt; &lt;blockquote&gt; 
&lt;p&gt;
&amp;lt;conversionPattern value="%date %level %logger - %message%newline" /&amp;gt; 
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
&amp;lt;/layout&amp;gt; 
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
&amp;lt;/appender&amp;gt; 
&lt;p&gt;
&amp;lt;root&amp;gt; 
&lt;p&gt;
&amp;lt;level value="DEBUG" /&amp;gt; &lt;blockquote&gt; 
&lt;p&gt;
&amp;lt;appender-ref ref="RollingFile" /&amp;gt; 
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
&amp;lt;/root&amp;gt; 
&lt;p&gt;
&amp;lt;/log4net&amp;gt; 
&lt;p&gt;
In this configuration will create a log file into the folder "c:\temp\" until its
size is 1024Kb.&lt;br&gt;
After this size the name of file will be web.log.1 until 10.&lt;br&gt;
At this &lt;a href="http://logging.apache.org/log4net/release/config-examples.html"&gt;link&lt;/a&gt; you
can find another configurations. 
&lt;p&gt;
Global.asax 
&lt;p&gt;
In the event "Application_Start" of the file Global.asax add this line:&lt;br&gt;
log4net.Config.XmlConfigurator.Configure();&lt;br&gt;
&lt;strong&gt;Begin to log&lt;/strong&gt; 
&lt;p&gt;
In every page you want to log something, add the static variable like below:&lt;br&gt;
private static readonly ILog log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); 
&lt;p&gt;
This class has 5 levels of severity to log the operations: 
&lt;p&gt;
log.Debug("log something at this level")&lt;br&gt;
log.Info("log something at this level")&lt;br&gt;
log.Warn("log something at this level");&lt;br&gt;
log.Error("log something at this level");&lt;br&gt;
log.Fatal("log something at this level"); 
&lt;p&gt;
Simple and fast to use.&lt;br&gt;
You find the official documentation at this &lt;a href="http://logging.apache.org/log4net/index.html"&gt;link&lt;/a&gt;. 
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=b1069887-98e6-44ff-bd20-1ee11b062b59" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,b1069887-98e6-44ff-bd20-1ee11b062b59.aspx</comments>
      <category>DotNet;DotNet / ASP</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=2ec1e8ab-60ee-45f1-b855-b17ae44afb90</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,2ec1e8ab-60ee-45f1-b855-b17ae44afb90.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,2ec1e8ab-60ee-45f1-b855-b17ae44afb90.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=2ec1e8ab-60ee-45f1-b855-b17ae44afb90</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a title="http://msdn2.microsoft.com/en-us/library/dct97kc3.aspx" href="http://msdn2.microsoft.com/en-us/library/dct97kc3.aspx">http://msdn2.microsoft.com/en-us/library/dct97kc3.aspx</a>
        </p>
        <p>
Both master pages and content pages can contain event handlers for controls. For controls,
events are handled locally—a control in a content page raises an event in the content
page, and a control in the master page raises an event in the master page. Controls
events are not sent from the content page to the master page. Similarly, you cannot
handle an event from a master page control in a content page. 
</p>
        <p>
In some cases, the same event is raised in both the content and the master page. For
example, both pages raise <a href="http://msdn2.microsoft.com/en-us/library/ddx12zse.aspx">Init</a> and <a href="http://msdn2.microsoft.com/en-us/library/abk3yt37.aspx">Load</a> events.
The general rule for how events are raised is that the initialization events are raised
from the innermost control to the outermost one, and all other events are raised from
the outermost control to the innermost one. It is helpful to remember that the master
page is merged into the content page and treated as a control in the content page. 
</p>
        <p>
The following is the sequence in which events occur when a master page is merged with
a content page: 
</p>
        <ol>
          <li>
            <p>
Master page controls Init event.
</p>
          </li>
          <li>
            <p>
Content controls Init event.
</p>
          </li>
          <li>
            <p>
Master page Init event.
</p>
          </li>
          <li>
            <p>
Content page Init event.
</p>
          </li>
          <li>
            <p>
Content page Load event.
</p>
          </li>
          <li>
            <p>
Master page Load event.
</p>
          </li>
          <li>
            <p>
Content controls Load event.
</p>
          </li>
          <li>
            <p>
Content page PreRender event.
</p>
          </li>
          <li>
            <p>
Master page PreRender event.
</p>
          </li>
          <li>
            <p>
Master page controls PreRender event.
</p>
          </li>
          <li>
            <p>
Content controls PreRender event.
</p>
          </li>
        </ol>
        <p>
The sequence of events in master and content pages rarely is important for you as
page developer. However, if you are creating event handlers that depend on the availability
of certain controls, you will find it helpful to understand the event sequence in
master and content pages. <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=2ec1e8ab-60ee-45f1-b855-b17ae44afb90" /></p>
      </body>
      <title>Events in ASP.NET Master and Content Pages</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,2ec1e8ab-60ee-45f1-b855-b17ae44afb90.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,2ec1e8ab-60ee-45f1-b855-b17ae44afb90.aspx</link>
      <pubDate>Thu, 20 Dec 2007 03:42:19 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a title="http://msdn2.microsoft.com/en-us/library/dct97kc3.aspx" href="http://msdn2.microsoft.com/en-us/library/dct97kc3.aspx"&gt;http://msdn2.microsoft.com/en-us/library/dct97kc3.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Both master pages and content pages can contain event handlers for controls. For controls,
events are handled locally—a control in a content page raises an event in the content
page, and a control in the master page raises an event in the master page. Controls
events are not sent from the content page to the master page. Similarly, you cannot
handle an event from a master page control in a content page. 
&lt;p&gt;
In some cases, the same event is raised in both the content and the master page. For
example, both pages raise &lt;a href="http://msdn2.microsoft.com/en-us/library/ddx12zse.aspx"&gt;Init&lt;/a&gt; and &lt;a href="http://msdn2.microsoft.com/en-us/library/abk3yt37.aspx"&gt;Load&lt;/a&gt; events.
The general rule for how events are raised is that the initialization events are raised
from the innermost control to the outermost one, and all other events are raised from
the outermost control to the innermost one. It is helpful to remember that the master
page is merged into the content page and treated as a control in the content page. 
&lt;p&gt;
The following is the sequence in which events occur when a master page is merged with
a content page: 
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;
Master page controls Init event.
&lt;/p&gt;
&lt;li&gt;
&lt;p&gt;
Content controls Init event.
&lt;/p&gt;
&lt;li&gt;
&lt;p&gt;
Master page Init event.
&lt;/p&gt;
&lt;li&gt;
&lt;p&gt;
Content page Init event.
&lt;/p&gt;
&lt;li&gt;
&lt;p&gt;
Content page Load event.
&lt;/p&gt;
&lt;li&gt;
&lt;p&gt;
Master page Load event.
&lt;/p&gt;
&lt;li&gt;
&lt;p&gt;
Content controls Load event.
&lt;/p&gt;
&lt;li&gt;
&lt;p&gt;
Content page PreRender event.
&lt;/p&gt;
&lt;li&gt;
&lt;p&gt;
Master page PreRender event.
&lt;/p&gt;
&lt;li&gt;
&lt;p&gt;
Master page controls PreRender event.
&lt;/p&gt;
&lt;li&gt;
&lt;p&gt;
Content controls PreRender event.
&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
The sequence of events in master and content pages rarely is important for you as
page developer. However, if you are creating event handlers that depend on the availability
of certain controls, you will find it helpful to understand the event sequence in
master and content pages. &lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=2ec1e8ab-60ee-45f1-b855-b17ae44afb90" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,2ec1e8ab-60ee-45f1-b855-b17ae44afb90.aspx</comments>
      <category>DotNet / ASP;Web</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=12028123-5046-42c2-ba97-6a79e407e46a</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,12028123-5046-42c2-ba97-6a79e407e46a.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,12028123-5046-42c2-ba97-6a79e407e46a.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=12028123-5046-42c2-ba97-6a79e407e46a</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a title="http://forums.asp.net/t/1127834.aspx" href="http://forums.asp.net/t/1127834.aspx">http://forums.asp.net/t/1127834.aspx</a>
        </p>
        <p>
 
</p>
        <p>
you can use the following javascript function to set the active tab:  
</p>
        <p>
function SetActiveTab(tabControl, tabNumber)<br />
{<br />
  var ctrl = $find(tabControl);<br />
  ctrl.set_activeTab(ctrl.get_tabs()[tabNumber]);<br />
} 
</p>
        <p>
tabControl: ID from the TabContainer Controls<br />
tabNumber: Number of the new Tab (starting at 0) 
</p>
        <p>
  
</p>
        <p>
Or 
</p>
        <p>
  
</p>
        <p>
$find('&lt;%=TabContainer1.ClientID%&gt;').get_activeTabIndex(); 
</p>
        <p>
and 
</p>
        <p>
$find('&lt;%=TabContainer1.ClientID%&gt;').set_activeTabIndex(2); <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=12028123-5046-42c2-ba97-6a79e407e46a" /></p>
      </body>
      <title>Change active tab in Ajax tab container using javascript</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,12028123-5046-42c2-ba97-6a79e407e46a.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,12028123-5046-42c2-ba97-6a79e407e46a.aspx</link>
      <pubDate>Wed, 28 Nov 2007 03:54:46 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a title="http://forums.asp.net/t/1127834.aspx" href="http://forums.asp.net/t/1127834.aspx"&gt;http://forums.asp.net/t/1127834.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
you can use the following javascript function to set the active tab:&amp;nbsp; 
&lt;p&gt;
function SetActiveTab(tabControl, tabNumber)&lt;br&gt;
{&lt;br&gt;
&amp;nbsp; var ctrl = $find(tabControl);&lt;br&gt;
&amp;nbsp; ctrl.set_activeTab(ctrl.get_tabs()[tabNumber]);&lt;br&gt;
} 
&lt;p&gt;
tabControl: ID from the TabContainer Controls&lt;br&gt;
tabNumber: Number of the new Tab (starting at 0) 
&lt;p&gt;
&amp;nbsp; 
&lt;p&gt;
Or 
&lt;p&gt;
&amp;nbsp; 
&lt;p&gt;
$find('&amp;lt;%=TabContainer1.ClientID%&amp;gt;').get_activeTabIndex(); 
&lt;p&gt;
and 
&lt;p&gt;
$find('&amp;lt;%=TabContainer1.ClientID%&amp;gt;').set_activeTabIndex(2); &lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=12028123-5046-42c2-ba97-6a79e407e46a" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,12028123-5046-42c2-ba97-6a79e407e46a.aspx</comments>
      <category>DotNet / AJAX;DotNet / ASP;Projects / YardSaleMap;Web</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=70c673f6-36d4-48a4-ac29-eef0dad8630f</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,70c673f6-36d4-48a4-ac29-eef0dad8630f.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,70c673f6-36d4-48a4-ac29-eef0dad8630f.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=70c673f6-36d4-48a4-ac29-eef0dad8630f</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a title="http://blenitz.blogspot.com/2007/09/hidden-columns-with-values-aspgridview.html" href="http://blenitz.blogspot.com/2007/09/hidden-columns-with-values-aspgridview.html">http://blenitz.blogspot.com/2007/09/hidden-columns-with-values-aspgridview.html</a>
        </p>
        <p>
(If you don't want to show empty headtitle, put the hidden filed in with other field
in one grid colomn)
</p>
        <p>
If you set Column Visible property to false, this column won't rendered. But if you
want these values available, What will you do?<br />
My trick was, set HeaderText to empty, convert the BoundField in TemplateField, and
use a HiddenField control. The effect the column won't be visible. Also you can use
the controls array to access to value property. 
</p>
        <blockquote>&lt;Columns&gt;&lt;asp:BoundField DataField="CompanyCode"<br />
HeaderText="Company" SortExpression="CompanyCode" /&gt;<br />
...<br />
&lt;Columns&gt;<br />
&lt;asp:TemplateField&gt;&lt;ItemTemplate&gt;&lt;asp:HiddenField<br />
id="hf1" Value='&lt;%# Bind("CompanyCode") %&gt;'<br />
runat="server"&gt;&lt;/asp:HiddenField&gt;&lt;/ItemTemplate&gt;<br />
...<br />
// accesing the value property<br />
int tmpID =<br />
Convert.ToInt32(((HiddenField)GridView1.SelectedRow.Cells[3].Controls[1]).Value); </blockquote>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=70c673f6-36d4-48a4-ac29-eef0dad8630f" />
      </body>
      <title>Use Hidden columns in ASP:DataGridView</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,70c673f6-36d4-48a4-ac29-eef0dad8630f.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,70c673f6-36d4-48a4-ac29-eef0dad8630f.aspx</link>
      <pubDate>Mon, 12 Nov 2007 21:07:00 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a title="http://blenitz.blogspot.com/2007/09/hidden-columns-with-values-aspgridview.html" href="http://blenitz.blogspot.com/2007/09/hidden-columns-with-values-aspgridview.html"&gt;http://blenitz.blogspot.com/2007/09/hidden-columns-with-values-aspgridview.html&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
(If you don't want to show empty headtitle, put the hidden filed in with other field
in one grid colomn)
&lt;/p&gt;
&lt;p&gt;
If you set Column Visible property to false, this column won't rendered. But if you
want these values available, What will you do?&lt;br&gt;
My trick was, set HeaderText to empty, convert the BoundField in TemplateField, and
use a HiddenField control. The effect the column won't be visible. Also you can use
the controls array to access to value property. &lt;blockquote&gt;&amp;lt;Columns&amp;gt;&amp;lt;asp:BoundField
DataField="CompanyCode"&lt;br&gt;
HeaderText="Company" SortExpression="CompanyCode" /&amp;gt;&lt;br&gt;
...&lt;br&gt;
&amp;lt;Columns&amp;gt;&lt;br&gt;
&amp;lt;asp:TemplateField&amp;gt;&amp;lt;ItemTemplate&amp;gt;&amp;lt;asp:HiddenField&lt;br&gt;
id="hf1" Value='&amp;lt;%# Bind("CompanyCode") %&amp;gt;'&lt;br&gt;
runat="server"&amp;gt;&amp;lt;/asp:HiddenField&amp;gt;&amp;lt;/ItemTemplate&amp;gt;&lt;br&gt;
...&lt;br&gt;
// accesing the value property&lt;br&gt;
int tmpID =&lt;br&gt;
Convert.ToInt32(((HiddenField)GridView1.SelectedRow.Cells[3].Controls[1]).Value); &lt;/blockquote&gt;&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=70c673f6-36d4-48a4-ac29-eef0dad8630f" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,70c673f6-36d4-48a4-ac29-eef0dad8630f.aspx</comments>
      <category>DotNet / ASP;Web</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=c288b31c-55a3-43a3-89ef-8bc04bd58450</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,c288b31c-55a3-43a3-89ef-8bc04bd58450.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,c288b31c-55a3-43a3-89ef-8bc04bd58450.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=c288b31c-55a3-43a3-89ef-8bc04bd58450</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a title="http://www.netomatix.com/development/GridViewRowSelectedEvent.aspx" href="http://www.netomatix.com/development/GridViewRowSelectedEvent.aspx">http://www.netomatix.com/development/GridViewRowSelectedEvent.aspx</a>
        </p>
        <h5>How to raise gridview server side event when when row is selected
</h5>
        <p>
 
</p>
        <p>
          <a title="http://www.netomatix.com/development/GridViewRowSelectedStyle.aspx" href="http://www.netomatix.com/development/GridViewRowSelectedStyle.aspx">http://www.netomatix.com/development/GridViewRowSelectedStyle.aspx</a>
        </p>
        <h5>How to highlight gridview when row is selected
</h5>
        <p>
 
</p>
        <p>
          <a title="http://www.netomatix.com/development/GridViewClientSideAccess.aspx" href="http://www.netomatix.com/development/GridViewClientSideAccess.aspx">http://www.netomatix.com/development/GridViewClientSideAccess.aspx</a>
        </p>
        <h5>How to access gridview cell values on client side
</h5>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=c288b31c-55a3-43a3-89ef-8bc04bd58450" />
      </body>
      <title>Javascript and DataGridView</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,c288b31c-55a3-43a3-89ef-8bc04bd58450.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,c288b31c-55a3-43a3-89ef-8bc04bd58450.aspx</link>
      <pubDate>Sun, 11 Nov 2007 16:02:32 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a title="http://www.netomatix.com/development/GridViewRowSelectedEvent.aspx" href="http://www.netomatix.com/development/GridViewRowSelectedEvent.aspx"&gt;http://www.netomatix.com/development/GridViewRowSelectedEvent.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;h5&gt;How to raise gridview server side event when when row is selected
&lt;/h5&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;a title="http://www.netomatix.com/development/GridViewRowSelectedStyle.aspx" href="http://www.netomatix.com/development/GridViewRowSelectedStyle.aspx"&gt;http://www.netomatix.com/development/GridViewRowSelectedStyle.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;h5&gt;How to highlight gridview when row is selected
&lt;/h5&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;a title="http://www.netomatix.com/development/GridViewClientSideAccess.aspx" href="http://www.netomatix.com/development/GridViewClientSideAccess.aspx"&gt;http://www.netomatix.com/development/GridViewClientSideAccess.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;h5&gt;How to access gridview cell values on client side
&lt;/h5&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=c288b31c-55a3-43a3-89ef-8bc04bd58450" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,c288b31c-55a3-43a3-89ef-8bc04bd58450.aspx</comments>
      <category>DotNet / ASP;Projects / YardSaleMap</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=034f072f-3a18-43b1-921f-93375aa6a87a</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,034f072f-3a18-43b1-921f-93375aa6a87a.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,034f072f-3a18-43b1-921f-93375aa6a87a.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=034f072f-3a18-43b1-921f-93375aa6a87a</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <font size="2">From: </font>
          <a title="http://www.mikeduncan.com/3-hot-uses-for-httpcontextcurrentitems-they-wont-tell-you-about/" href="http://www.mikeduncan.com/3-hot-uses-for-httpcontextcurrentitems-they-wont-tell-you-about/">
            <font size="2">http://www.mikeduncan.com/3-hot-uses-for-httpcontextcurrentitems-they-wont-tell-you-about/</font>
          </a>
        </p>
        <p>
          <font size="2">Generally, <strong>HttpContext.Current.Items</strong> doesn’t get all
that much hot blog press, but let me tell you, I’m here to change all that. For those
out of the know, System.Web.HttpContext.Current.Items is a sweet key-value pair collection
you can use to pass objects around up and through all components that participate
in a single HTTP request. What does this mean? This means that in a way similar to
sticking something in the Session or cache, you can jam some values into the HttpContext.Current.Items
for your request, say in a HttpModule way down low before you’ve even begun to fetch
a page, and have those values readable/writable later from your page and all its usercontrols.
The Items only persist through this one-night-stand of a single request and then supposedly
“lose your number” but that’s ok, because we don’t really need all their drama after
that anyway.</font>
        </p>
        <p>
          <font size="2">
            <strong>1)</strong>
            <strong>Preparing objects down low, on the down-low</strong>.</font>
        </p>
        <p>
          <font size="2">As alluded to earlier, one sweet use of HCI (as we call in on the street)
is in HttpModules. Let’s say you are doing some url-rewriting for user-friendliness
or SEO reasons. While you’re at it, why not do a little preparation for your page?
If you have a query param of state abbreviation that comes in commonly, populate an
additional full state name display field ahead of time. Clean up your strings with
proper casing, do whatever utils you think you can get away with while you have the
request in your hand. I have a little object of getters and setters that I populate
in the the HttpModule, and stick it in the Current.Items for its way up the stack.
Now my pages and usercontrols can pull out my cleaned up custom object from the Context.Items
and act accordingly, pass it down the line to methods, whatever. The vibe is maybe
a hint at a smidgen of a wee bit </font>
          <a href="http://en.wikipedia.org/wiki/Model_view_controller">
            <font size="2">Model
View Controller-ish</font>
          </a>
          <font size="2">, but not really.</font>
        </p>
        <p>
          <strong>
            <font size="2">2) Making params and pages more unit-testable.</font>
          </strong>
        </p>
        <p>
          <font size="2">With something like #1 in place, you can pull objects of params and
prepared goodness out of the request and process them in your code behind, presenter,
usercontrol, whatever strikes your pattern fancy. If this bundle of params is a in
a nice little object that implements an interface, this makes unit testing logic that
under normal circumstances relies upon getting info from the System.Web namespace
(querystring params mostly) nice and easily decoupled. Pros of this are that your
view calling your presenter can stay super lean and mean without having to populate
a bunch info from query strings which will end up going through standard transformations
you could have handled earlier on. A con is that the population of these params might
be a bit mysterious to other devs who don’t see the HttpModule in action, sort of
a like a table that gets populated from somewhere or other, but you don’t know what
trigger where. I hate that.</font>
        </p>
        <p>
          <strong>
            <font size="2">3) Populating usercontrols without the hassle.</font>
          </strong>
        </p>
        <p>
          <font size="2">If you know you have values in your hand at page on_load or earlier,
it’s pretty damn convenient to stick them in the HttpContext.Current.Items and then
just read them out from whatever usercontrols may or may not be dynamically included
on the page. No finding child controls from the page, no finding parent info from
the controls. No casting, scoping or otherwise thinking about precisely what order
what will fire. If you have the data at page_load, your controls can get it. Don’t
call me, and I won’t call you either. </font>
          <a href="http://www.urbandictionary.com/define.php?term=Tadow">
            <font size="2">Ta-dow</font>
          </a>
          <font size="2"> (does
anyone say that anymore?).</font>
        </p>
        <p>
          <font size="2">So there you have it, <em>HttpContext.Current.Items</em>, arcane enough
to give you guru-cred to the mid-range noobs, simple enough that it can be leveraged
for good and / or evil. Awesome.</font>
        </p>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=034f072f-3a18-43b1-921f-93375aa6a87a" />
      </body>
      <title>3 hot uses for HttpContext.Current.Items &amp;ldquo;They&amp;rdquo; won&amp;rsquo;t tell you about.</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,034f072f-3a18-43b1-921f-93375aa6a87a.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,034f072f-3a18-43b1-921f-93375aa6a87a.aspx</link>
      <pubDate>Thu, 08 Nov 2007 19:19:38 GMT</pubDate>
      <description>&lt;p&gt;
&lt;font size="2"&gt;From: &lt;/font&gt;&lt;a title="http://www.mikeduncan.com/3-hot-uses-for-httpcontextcurrentitems-they-wont-tell-you-about/" href="http://www.mikeduncan.com/3-hot-uses-for-httpcontextcurrentitems-they-wont-tell-you-about/"&gt;&lt;font size="2"&gt;http://www.mikeduncan.com/3-hot-uses-for-httpcontextcurrentitems-they-wont-tell-you-about/&lt;/font&gt;&lt;/a&gt; 
&lt;p&gt;
&lt;font size="2"&gt;Generally, &lt;strong&gt;HttpContext.Current.Items&lt;/strong&gt; doesn’t get all
that much hot blog press, but let me tell you, I’m here to change all that. For those
out of the know, System.Web.HttpContext.Current.Items is a sweet key-value pair collection
you can use to pass objects around up and through all components that participate
in a single HTTP request. What does this mean? This means that in a way similar to
sticking something in the Session or cache, you can jam some values into the HttpContext.Current.Items
for your request, say in a HttpModule way down low before you’ve even begun to fetch
a page, and have those values readable/writable later from your page and all its usercontrols.
The Items only persist through this one-night-stand of a single request and then supposedly
“lose your number” but that’s ok, because we don’t really need all their drama after
that anyway.&lt;/font&gt; 
&lt;p&gt;
&lt;font size="2"&gt;&lt;strong&gt;1)&lt;/strong&gt; &lt;strong&gt;Preparing objects down low, on the down-low&lt;/strong&gt;.&lt;/font&gt; 
&lt;p&gt;
&lt;font size="2"&gt;As alluded to earlier, one sweet use of HCI (as we call in on the street)
is in HttpModules. Let’s say you are doing some url-rewriting for user-friendliness
or SEO reasons. While you’re at it, why not do a little preparation for your page?
If you have a query param of state abbreviation that comes in commonly, populate an
additional full state name display field ahead of time. Clean up your strings with
proper casing, do whatever utils you think you can get away with while you have the
request in your hand. I have a little object of getters and setters that I populate
in the the HttpModule, and stick it in the Current.Items for its way up the stack.
Now my pages and usercontrols can pull out my cleaned up custom object from the Context.Items
and act accordingly, pass it down the line to methods, whatever. The vibe is maybe
a hint at a smidgen of a wee bit &lt;/font&gt;&lt;a href="http://en.wikipedia.org/wiki/Model_view_controller"&gt;&lt;font size="2"&gt;Model
View Controller-ish&lt;/font&gt;&lt;/a&gt;&lt;font size="2"&gt;, but not really.&lt;/font&gt; 
&lt;p&gt;
&lt;strong&gt;&lt;font size="2"&gt;2) Making params and pages more unit-testable.&lt;/font&gt;&lt;/strong&gt; 
&lt;p&gt;
&lt;font size="2"&gt;With something like #1 in place, you can pull objects of params and
prepared goodness out of the request and process them in your code behind, presenter,
usercontrol, whatever strikes your pattern fancy. If this bundle of params is a in
a nice little object that implements an interface, this makes unit testing logic that
under normal circumstances relies upon getting info from the System.Web namespace
(querystring params mostly) nice and easily decoupled. Pros of this are that your
view calling your presenter can stay super lean and mean without having to populate
a bunch info from query strings which will end up going through standard transformations
you could have handled earlier on. A con is that the population of these params might
be a bit mysterious to other devs who don’t see the HttpModule in action, sort of
a like a table that gets populated from somewhere or other, but you don’t know what
trigger where. I hate that.&lt;/font&gt; 
&lt;p&gt;
&lt;strong&gt;&lt;font size="2"&gt;3) Populating usercontrols without the hassle.&lt;/font&gt;&lt;/strong&gt; 
&lt;p&gt;
&lt;font size="2"&gt;If you know you have values in your hand at page on_load or earlier,
it’s pretty damn convenient to stick them in the HttpContext.Current.Items and then
just read them out from whatever usercontrols may or may not be dynamically included
on the page. No finding child controls from the page, no finding parent info from
the controls. No casting, scoping or otherwise thinking about precisely what order
what will fire. If you have the data at page_load, your controls can get it. Don’t
call me, and I won’t call you either. &lt;/font&gt;&lt;a href="http://www.urbandictionary.com/define.php?term=Tadow"&gt;&lt;font size="2"&gt;Ta-dow&lt;/font&gt;&lt;/a&gt;&lt;font size="2"&gt; (does
anyone say that anymore?).&lt;/font&gt; 
&lt;p&gt;
&lt;font size="2"&gt;So there you have it, &lt;em&gt;HttpContext.Current.Items&lt;/em&gt;, arcane enough
to give you guru-cred to the mid-range noobs, simple enough that it can be leveraged
for good and / or evil. Awesome.&lt;/font&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=034f072f-3a18-43b1-921f-93375aa6a87a" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,034f072f-3a18-43b1-921f-93375aa6a87a.aspx</comments>
      <category>DotNet / ASP</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=f66c2a31-7b38-4c93-b72f-53d62ed80beb</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,f66c2a31-7b38-4c93-b72f-53d62ed80beb.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,f66c2a31-7b38-4c93-b72f-53d62ed80beb.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=f66c2a31-7b38-4c93-b72f-53d62ed80beb</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
&lt;asp:GridView ID="GridViewYardSales" runat="server" CssClass="yui-datatable-theme"<br />
                           
AutoGenerateColumns="false" DataSourceID="YardSaleDataSource" AllowSorting="true"<br />
                           
OnRowCommand="GridViewYardSales_RowCommand" OnRowCreated="GridViewYardSales_RowCreated"<br />
                           
DataKeyNames="ItemId"&gt;<br />
                           
&lt;RowStyle CssClass="data-row" /&gt;<br />
                           
&lt;AlternatingRowStyle CssClass="alt-data-row" /&gt;<br />
                           
&lt;Columns&gt;<br />
                               
&lt;asp:BoundField DataField="ItemId" HeaderText="ItemId" ReadOnly="True" SortExpression="ItemId"<br />
                                   
Visible="false"&gt;&lt;/asp:BoundField&gt;<br />
                               
&lt;asp:TemplateField ItemStyle-HorizontalAlign="Center" ItemStyle-Width="20px"&gt;<br />
                                   
&lt;ItemTemplate&gt;<br />
                                       
&lt;asp:LinkButton ID="LinkButtonViewOnMap" runat="server" OnClientClick=&lt;%# String.Format("javascript:ViewOnMapById('{0}');",
Eval("ItemId")) %&gt;&gt;<br />
                               
Map&lt;/asp:LinkButton&gt;&lt;br /&gt;<br />
                                       
&lt;asp:LinkButton ID="LinkButtonItinerary" runat="server" CommandName="Command_Itinerary"<br />
                                           
CommandArgument='&lt;%# Eval("ItemId") %&gt;'&gt;Itinerary &lt;/asp:LinkButton&gt;&lt;br
/&gt;<br />
                                       
&lt;asp:LinkButton ID="LinkButtonViewDetail" runat="server" CommandName="Command_ViewItemDetail"<br />
                                           
CommandArgument='&lt;%# Eval("ItemId") %&gt;'&gt;Detail<br />
                                       
&lt;/asp:LinkButton&gt;<br />
                                   
&lt;/ItemTemplate&gt;<br />
                               
&lt;/asp:TemplateField&gt;<br />
                               
&lt;asp:TemplateField HeaderText="Title"&gt;<br />
                                   
&lt;ItemTemplate&gt;<br />
                                       
&lt;%# Eval("Title") %&gt;&lt;br /&gt;<br />
                                   
&lt;/ItemTemplate&gt;<br />
                               
&lt;/asp:TemplateField&gt;<br />
                               
&lt;asp:TemplateField HeaderText="Date"&gt;<br />
                                   
&lt;ItemTemplate&gt;<br />
                                       
&lt;%# Eval("Time") %&gt;<br />
                                   
&lt;/ItemTemplate&gt;<br />
                               
&lt;/asp:TemplateField&gt;<br />
                           
&lt;/Columns&gt;<br />
                       
&lt;/asp:GridView&gt; 
</p>
        <p>
  
</p>
        <p>
protected void GridViewYardSales_RowCreated(object sender, GridViewRowEventArgs e)<br />
        {<br />
            if (e.Row.RowType
== DataControlRowType.DataRow)<br />
            {<br />
               
//Retrieve LinkButton control<br />
               
int m_RowIndex = e.Row.RowIndex;<br />
               
string id = GridViewYardSales.DataKeys[m_RowIndex].Value.ToString();<br />
               
LinkButton lb = (LinkButton)e.Row.FindControl("LinkButtonItinerary"); 
</p>
        <p>
               
if (IsItemAlreadyInItinerary(id))<br />
               
{<br />
                   
lb.Text = "Remove";<br />
               
}<br />
               
else<br />
               
{<br />
                   
lb.Text = "Add";<br />
               
}<br />
            }<br />
        } 
</p>
        <p>
        protected void GridViewYardSales_RowCommand(object
sender, GridViewCommandEventArgs e)<br />
        {<br />
            if (e.CommandName
== "Command_Itinerary")<br />
            {<br />
               
string id = e.CommandArgument.ToString(); 
</p>
        <p>
               
GridViewRow selectedRow = (GridViewRow)(((Control)e.CommandSource).NamingContainer);<br />
               
LinkButton lb = (LinkButton)selectedRow.FindControl("LinkButtonItinerary"); 
</p>
        <p>
               
if (!IsItemAlreadyInItinerary(id))<br />
               
{<br />
                   
AddItemToItinerary(id);<br />
                   
lb.Text = "Remove";<br />
               
}<br />
               
else<br />
               
{<br />
                   
RemoveItemFromItinerary(id);<br />
                   
lb.Text = "Add";<br />
               
}<br />
            }<br />
            else if (e.CommandName
== "Command_ViewItemDetail")<br />
            {<br />
               
string id = e.CommandArgument.ToString();<br />
               
Response.Redirect("ViewSale.aspx?id=" + id);<br />
            }<br />
        }
</p>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=f66c2a31-7b38-4c93-b72f-53d62ed80beb" />
      </body>
      <title>DataGrid DataBounds Column examples</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,f66c2a31-7b38-4c93-b72f-53d62ed80beb.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,f66c2a31-7b38-4c93-b72f-53d62ed80beb.aspx</link>
      <pubDate>Tue, 06 Nov 2007 21:42:39 GMT</pubDate>
      <description>&lt;p&gt;
&amp;lt;asp:GridView ID="GridViewYardSales" runat="server" CssClass="yui-datatable-theme"&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
AutoGenerateColumns="false" DataSourceID="YardSaleDataSource" AllowSorting="true"&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
OnRowCommand="GridViewYardSales_RowCommand" OnRowCreated="GridViewYardSales_RowCreated"&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
DataKeyNames="ItemId"&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;RowStyle CssClass="data-row" /&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;AlternatingRowStyle CssClass="alt-data-row" /&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;Columns&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;asp:BoundField DataField="ItemId" HeaderText="ItemId" ReadOnly="True" SortExpression="ItemId"&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
Visible="false"&amp;gt;&amp;lt;/asp:BoundField&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;asp:TemplateField ItemStyle-HorizontalAlign="Center" ItemStyle-Width="20px"&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;ItemTemplate&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;asp:LinkButton ID="LinkButtonViewOnMap" runat="server" OnClientClick=&amp;lt;%# String.Format("javascript:ViewOnMapById('{0}');",
Eval("ItemId")) %&amp;gt;&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
Map&amp;lt;/asp:LinkButton&amp;gt;&amp;lt;br /&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;asp:LinkButton ID="LinkButtonItinerary" runat="server" CommandName="Command_Itinerary"&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
CommandArgument='&amp;lt;%# Eval("ItemId") %&amp;gt;'&amp;gt;Itinerary &amp;lt;/asp:LinkButton&amp;gt;&amp;lt;br
/&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;asp:LinkButton ID="LinkButtonViewDetail" runat="server" CommandName="Command_ViewItemDetail"&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
CommandArgument='&amp;lt;%# Eval("ItemId") %&amp;gt;'&amp;gt;Detail&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;/asp:LinkButton&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;/ItemTemplate&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;/asp:TemplateField&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;asp:TemplateField HeaderText="Title"&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;ItemTemplate&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;%# Eval("Title") %&amp;gt;&amp;lt;br /&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;/ItemTemplate&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;/asp:TemplateField&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;asp:TemplateField HeaderText="Date"&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;ItemTemplate&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;%# Eval("Time") %&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;/ItemTemplate&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;/asp:TemplateField&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;/Columns&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;/asp:GridView&amp;gt; 
&lt;p&gt;
&amp;nbsp; 
&lt;p&gt;
protected void GridViewYardSales_RowCreated(object sender, GridViewRowEventArgs e)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (e.Row.RowType
== DataControlRowType.DataRow)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
//Retrieve LinkButton control&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
int m_RowIndex = e.Row.RowIndex;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
string id = GridViewYardSales.DataKeys[m_RowIndex].Value.ToString();&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
LinkButton lb = (LinkButton)e.Row.FindControl("LinkButtonItinerary"); 
&lt;p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
if (IsItemAlreadyInItinerary(id))&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
{&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
lb.Text = "Remove";&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
}&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
else&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
{&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
lb.Text = "Add";&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
}&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } 
&lt;p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; protected void GridViewYardSales_RowCommand(object
sender, GridViewCommandEventArgs e)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (e.CommandName
== "Command_Itinerary")&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
string id = e.CommandArgument.ToString(); 
&lt;p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
GridViewRow selectedRow = (GridViewRow)(((Control)e.CommandSource).NamingContainer);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
LinkButton lb = (LinkButton)selectedRow.FindControl("LinkButtonItinerary"); 
&lt;p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
if (!IsItemAlreadyInItinerary(id))&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
{&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
AddItemToItinerary(id);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
lb.Text = "Remove";&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
}&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
else&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
{&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
RemoveItemFromItinerary(id);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
lb.Text = "Add";&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
}&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if (e.CommandName
== "Command_ViewItemDetail")&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
string id = e.CommandArgument.ToString();&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
Response.Redirect("ViewSale.aspx?id=" + id);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=f66c2a31-7b38-4c93-b72f-53d62ed80beb" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,f66c2a31-7b38-4c93-b72f-53d62ed80beb.aspx</comments>
      <category>DotNet / ASP;Projects / YardSaleMap</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=50dd96a9-885b-4554-bbb8-6d6d95be3a64</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,50dd96a9-885b-4554-bbb8-6d6d95be3a64.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,50dd96a9-885b-4554-bbb8-6d6d95be3a64.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=50dd96a9-885b-4554-bbb8-6d6d95be3a64</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
&lt;asp:GridView ID="GridViewYardSales" runat="server" CssClass="yui-datatable-theme"<br />
                           
AutoGenerateColumns="false" DataSourceID="YardSaleDataSource" AllowSorting="true"<br />
                           
OnRowCommand="GridViewYardSales_RowCommand" OnRowCreated="GridViewYardSales_RowCreated"<br />
                           
DataKeyNames="ItemId"&gt;<br />
                           
&lt;RowStyle CssClass="data-row" /&gt;<br />
                           
&lt;AlternatingRowStyle CssClass="alt-data-row" /&gt;<br />
                           
&lt;Columns&gt;<br />
                               
&lt;asp:BoundField DataField="ItemId" HeaderText="ItemId" ReadOnly="True" SortExpression="ItemId"<br />
                                   
Visible="false"&gt;&lt;/asp:BoundField&gt;<br />
                               
&lt;asp:TemplateField ItemStyle-HorizontalAlign="Center" ItemStyle-Width="20px"&gt;<br />
                                   
&lt;ItemTemplate&gt;<br />
                                       
&lt;asp:LinkButton ID="LinkButtonViewOnMap" runat="server" OnClientClick=&lt;%# String.Format("javascript:ViewOnMapById('{0}');",
Eval("ItemId")) %&gt;&gt;<br />
                               
Map&lt;/asp:LinkButton&gt;&lt;br /&gt;<br />
                                       
&lt;asp:LinkButton ID="LinkButtonItinerary" runat="server" CommandName="Command_Itinerary"<br />
                                           
CommandArgument='&lt;%# Eval("ItemId") %&gt;'&gt;Itinerary &lt;/asp:LinkButton&gt;&lt;br
/&gt;<br />
                                       
&lt;asp:LinkButton ID="LinkButtonViewDetail" runat="server" CommandName="Command_ViewItemDetail"<br />
                                           
CommandArgument='&lt;%# Eval("ItemId") %&gt;'&gt;Detail<br />
                                       
&lt;/asp:LinkButton&gt;<br />
                                   
&lt;/ItemTemplate&gt;<br />
                               
&lt;/asp:TemplateField&gt;<br />
                               
&lt;asp:TemplateField HeaderText="Title"&gt;<br />
                                   
&lt;ItemTemplate&gt;<br />
                                       
&lt;%# Eval("Title") %&gt;&lt;br /&gt;<br />
                                   
&lt;/ItemTemplate&gt;<br />
                               
&lt;/asp:TemplateField&gt;<br />
                               
&lt;asp:TemplateField HeaderText="Date"&gt;<br />
                                   
&lt;ItemTemplate&gt;<br />
                                       
&lt;%# Eval("Time") %&gt;<br />
                                   
&lt;/ItemTemplate&gt;<br />
                               
&lt;/asp:TemplateField&gt;<br />
                           
&lt;/Columns&gt;<br />
                       
&lt;/asp:GridView&gt;
</p>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=50dd96a9-885b-4554-bbb8-6d6d95be3a64" />
      </body>
      <title>DataGrid DataBounds Column examples</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,50dd96a9-885b-4554-bbb8-6d6d95be3a64.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,50dd96a9-885b-4554-bbb8-6d6d95be3a64.aspx</link>
      <pubDate>Tue, 06 Nov 2007 21:37:14 GMT</pubDate>
      <description>&lt;p&gt;
&amp;lt;asp:GridView ID="GridViewYardSales" runat="server" CssClass="yui-datatable-theme"&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
AutoGenerateColumns="false" DataSourceID="YardSaleDataSource" AllowSorting="true"&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
OnRowCommand="GridViewYardSales_RowCommand" OnRowCreated="GridViewYardSales_RowCreated"&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
DataKeyNames="ItemId"&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;RowStyle CssClass="data-row" /&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;AlternatingRowStyle CssClass="alt-data-row" /&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;Columns&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;asp:BoundField DataField="ItemId" HeaderText="ItemId" ReadOnly="True" SortExpression="ItemId"&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
Visible="false"&amp;gt;&amp;lt;/asp:BoundField&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;asp:TemplateField ItemStyle-HorizontalAlign="Center" ItemStyle-Width="20px"&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;ItemTemplate&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;asp:LinkButton ID="LinkButtonViewOnMap" runat="server" OnClientClick=&amp;lt;%# String.Format("javascript:ViewOnMapById('{0}');",
Eval("ItemId")) %&amp;gt;&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
Map&amp;lt;/asp:LinkButton&amp;gt;&amp;lt;br /&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;asp:LinkButton ID="LinkButtonItinerary" runat="server" CommandName="Command_Itinerary"&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
CommandArgument='&amp;lt;%# Eval("ItemId") %&amp;gt;'&amp;gt;Itinerary &amp;lt;/asp:LinkButton&amp;gt;&amp;lt;br
/&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;asp:LinkButton ID="LinkButtonViewDetail" runat="server" CommandName="Command_ViewItemDetail"&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
CommandArgument='&amp;lt;%# Eval("ItemId") %&amp;gt;'&amp;gt;Detail&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;/asp:LinkButton&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;/ItemTemplate&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;/asp:TemplateField&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;asp:TemplateField HeaderText="Title"&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;ItemTemplate&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;%# Eval("Title") %&amp;gt;&amp;lt;br /&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;/ItemTemplate&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;/asp:TemplateField&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;asp:TemplateField HeaderText="Date"&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;ItemTemplate&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;%# Eval("Time") %&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;/ItemTemplate&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;/asp:TemplateField&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;/Columns&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;/asp:GridView&amp;gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=50dd96a9-885b-4554-bbb8-6d6d95be3a64" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,50dd96a9-885b-4554-bbb8-6d6d95be3a64.aspx</comments>
      <category>DotNet / ASP;Projects / YardSaleMap</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=d2ea4dd9-e0d6-4ba1-99ee-bfa695bb9d6c</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,d2ea4dd9-e0d6-4ba1-99ee-bfa695bb9d6c.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,d2ea4dd9-e0d6-4ba1-99ee-bfa695bb9d6c.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=d2ea4dd9-e0d6-4ba1-99ee-bfa695bb9d6c</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Messy in sychronization.
</p>
        <p>
          <a title="http://www.west-wind.com/WebLog/posts/6760.aspx" href="http://www.west-wind.com/WebLog/posts/6760.aspx">http://www.west-wind.com/WebLog/posts/6760.aspx</a>
        </p>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=d2ea4dd9-e0d6-4ba1-99ee-bfa695bb9d6c" />
      </body>
      <title>Redorder List problems</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,d2ea4dd9-e0d6-4ba1-99ee-bfa695bb9d6c.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,d2ea4dd9-e0d6-4ba1-99ee-bfa695bb9d6c.aspx</link>
      <pubDate>Tue, 06 Nov 2007 04:38:17 GMT</pubDate>
      <description>&lt;p&gt;
Messy in sychronization.
&lt;/p&gt;
&lt;p&gt;
&lt;a title="http://www.west-wind.com/WebLog/posts/6760.aspx" href="http://www.west-wind.com/WebLog/posts/6760.aspx"&gt;http://www.west-wind.com/WebLog/posts/6760.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=d2ea4dd9-e0d6-4ba1-99ee-bfa695bb9d6c" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,d2ea4dd9-e0d6-4ba1-99ee-bfa695bb9d6c.aspx</comments>
      <category>DotNet / ASP;Projects / YardSaleMap</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=43167ca8-ff33-4d36-868c-dfc5d235b545</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,43167ca8-ff33-4d36-868c-dfc5d235b545.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,43167ca8-ff33-4d36-868c-dfc5d235b545.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=43167ca8-ff33-4d36-868c-dfc5d235b545</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a title="http://www.codeproject.com/Ajax/ReorderListSaveOrder.asp" href="http://www.codeproject.com/Ajax/ReorderListSaveOrder.asp">http://www.codeproject.com/Ajax/ReorderListSaveOrder.asp</a>
        </p>
        <p>
bind to data table
</p>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=43167ca8-ff33-4d36-868c-dfc5d235b545" />
      </body>
      <title>ajax reorderlist</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,43167ca8-ff33-4d36-868c-dfc5d235b545.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,43167ca8-ff33-4d36-868c-dfc5d235b545.aspx</link>
      <pubDate>Mon, 05 Nov 2007 21:48:15 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a title="http://www.codeproject.com/Ajax/ReorderListSaveOrder.asp" href="http://www.codeproject.com/Ajax/ReorderListSaveOrder.asp"&gt;http://www.codeproject.com/Ajax/ReorderListSaveOrder.asp&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
bind to data table
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=43167ca8-ff33-4d36-868c-dfc5d235b545" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,43167ca8-ff33-4d36-868c-dfc5d235b545.aspx</comments>
      <category>DotNet / ASP;Projects / YardSaleMap</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=1aedfd08-8a36-41da-a7e7-21a185757bb7</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,1aedfd08-8a36-41da-a7e7-21a185757bb7.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,1aedfd08-8a36-41da-a7e7-21a185757bb7.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=1aedfd08-8a36-41da-a7e7-21a185757bb7</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
&lt;asp:TemplateField ItemStyle-HorizontalAlign="Center" ItemStyle-Width="20px"&gt;<br />
 &lt;ItemTemplate&gt;<br />
          &lt;%# Convert.ToInt32(DataBinder.Eval(Container,
"DataItemIndex")) + 1 %&gt;.<br />
   &lt;/ItemTemplate&gt;<br />
 &lt;/asp:TemplateField&gt;
</p>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=1aedfd08-8a36-41da-a7e7-21a185757bb7" />
      </body>
      <title>Add row number for datagridview</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,1aedfd08-8a36-41da-a7e7-21a185757bb7.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,1aedfd08-8a36-41da-a7e7-21a185757bb7.aspx</link>
      <pubDate>Sun, 04 Nov 2007 21:19:02 GMT</pubDate>
      <description>&lt;p&gt;
&amp;lt;asp:TemplateField ItemStyle-HorizontalAlign="Center" ItemStyle-Width="20px"&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;lt;ItemTemplate&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;%# Convert.ToInt32(DataBinder.Eval(Container,
"DataItemIndex")) + 1 %&amp;gt;.&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/ItemTemplate&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;lt;/asp:TemplateField&amp;gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=1aedfd08-8a36-41da-a7e7-21a185757bb7" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,1aedfd08-8a36-41da-a7e7-21a185757bb7.aspx</comments>
      <category>DotNet / ASP;Projects / YardSaleMap</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=bb47a0c4-75ac-48d9-a808-5a8de2fb70b8</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,bb47a0c4-75ac-48d9-a808-5a8de2fb70b8.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,bb47a0c4-75ac-48d9-a808-5a8de2fb70b8.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=bb47a0c4-75ac-48d9-a808-5a8de2fb70b8</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a title="http://msdn2.microsoft.com/en-us/asp.net/Aa336613.aspx" href="http://msdn2.microsoft.com/en-us/asp.net/Aa336613.aspx">http://msdn2.microsoft.com/en-us/asp.net/Aa336613.aspx</a>
        </p>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=bb47a0c4-75ac-48d9-a808-5a8de2fb70b8" />
      </body>
      <title>ASP.NET Design Templates</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,bb47a0c4-75ac-48d9-a808-5a8de2fb70b8.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,bb47a0c4-75ac-48d9-a808-5a8de2fb70b8.aspx</link>
      <pubDate>Mon, 22 Oct 2007 03:57:37 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a title="http://msdn2.microsoft.com/en-us/asp.net/Aa336613.aspx" href="http://msdn2.microsoft.com/en-us/asp.net/Aa336613.aspx"&gt;http://msdn2.microsoft.com/en-us/asp.net/Aa336613.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=bb47a0c4-75ac-48d9-a808-5a8de2fb70b8" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,bb47a0c4-75ac-48d9-a808-5a8de2fb70b8.aspx</comments>
      <category>DotNet / ASP;Web</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=b0dbc937-39f6-4e81-8a38-e79f88d47af6</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,b0dbc937-39f6-4e81-8a38-e79f88d47af6.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,b0dbc937-39f6-4e81-8a38-e79f88d47af6.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=b0dbc937-39f6-4e81-8a38-e79f88d47af6</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a title="http://www.colorpilot.com/pdfsample_aspnet.html" href="http://www.colorpilot.com/pdfsample_aspnet.html">http://www.colorpilot.com/pdfsample_aspnet.html</a>
        </p>
        <p>
 
</p>
        <p>
          <a title="http://channel9.msdn.com/ShowPost.aspx?PostID=120461" href="http://channel9.msdn.com/ShowPost.aspx?PostID=120461">http://channel9.msdn.com/ShowPost.aspx?PostID=120461</a>
        </p>
        <p>
 
</p>
        <p>
          <a title="http://www.primopdf.com/" href="http://www.primopdf.com/">http://www.primopdf.com/</a>
        </p>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=b0dbc937-39f6-4e81-8a38-e79f88d47af6" />
      </body>
      <title>Generate PDF document in ASP.NET</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,b0dbc937-39f6-4e81-8a38-e79f88d47af6.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,b0dbc937-39f6-4e81-8a38-e79f88d47af6.aspx</link>
      <pubDate>Fri, 19 Oct 2007 21:27:27 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a title="http://www.colorpilot.com/pdfsample_aspnet.html" href="http://www.colorpilot.com/pdfsample_aspnet.html"&gt;http://www.colorpilot.com/pdfsample_aspnet.html&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;a title="http://channel9.msdn.com/ShowPost.aspx?PostID=120461" href="http://channel9.msdn.com/ShowPost.aspx?PostID=120461"&gt;http://channel9.msdn.com/ShowPost.aspx?PostID=120461&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;a title="http://www.primopdf.com/" href="http://www.primopdf.com/"&gt;http://www.primopdf.com/&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=b0dbc937-39f6-4e81-8a38-e79f88d47af6" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,b0dbc937-39f6-4e81-8a38-e79f88d47af6.aspx</comments>
      <category>DotNet / ASP;Projects / YardSaleMap</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=c0db45e0-dff5-4d71-8138-7dff26a52868</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,c0db45e0-dff5-4d71-8138-7dff26a52868.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,c0db45e0-dff5-4d71-8138-7dff26a52868.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=c0db45e0-dff5-4d71-8138-7dff26a52868</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a title="http://www.4guysfromrolla.com/webtech/061103-1.shtml" href="http://www.4guysfromrolla.com/webtech/061103-1.shtml">http://www.4guysfromrolla.com/webtech/061103-1.shtml</a>
        </p>
        <p>
 
</p>
        <p>
&lt;input type="button" id="btnPrint" onclick="window.print()" value="Print"&gt;
</p>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=c0db45e0-dff5-4d71-8138-7dff26a52868" />
      </body>
      <title>Print a web page</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,c0db45e0-dff5-4d71-8138-7dff26a52868.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,c0db45e0-dff5-4d71-8138-7dff26a52868.aspx</link>
      <pubDate>Fri, 19 Oct 2007 21:17:28 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a title="http://www.4guysfromrolla.com/webtech/061103-1.shtml" href="http://www.4guysfromrolla.com/webtech/061103-1.shtml"&gt;http://www.4guysfromrolla.com/webtech/061103-1.shtml&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&amp;lt;input type="button" id="btnPrint" onclick="window.print()" value="Print"&amp;gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=c0db45e0-dff5-4d71-8138-7dff26a52868" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,c0db45e0-dff5-4d71-8138-7dff26a52868.aspx</comments>
      <category>DotNet / ASP;Projects / YardSaleMap</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=354b1675-25ad-498e-922c-eaf45dd839d4</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,354b1675-25ad-498e-922c-eaf45dd839d4.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,354b1675-25ad-498e-922c-eaf45dd839d4.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=354b1675-25ad-498e-922c-eaf45dd839d4</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a title="http://www.4guysfromrolla.com/webtech/061103-1.shtml" href="http://www.4guysfromrolla.com/webtech/061103-1.shtml">http://www.4guysfromrolla.com/webtech/061103-1.shtml</a>
        </p>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=354b1675-25ad-498e-922c-eaf45dd839d4" />
      </body>
      <title>Print a web page</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,354b1675-25ad-498e-922c-eaf45dd839d4.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,354b1675-25ad-498e-922c-eaf45dd839d4.aspx</link>
      <pubDate>Fri, 19 Oct 2007 21:16:58 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a title="http://www.4guysfromrolla.com/webtech/061103-1.shtml" href="http://www.4guysfromrolla.com/webtech/061103-1.shtml"&gt;http://www.4guysfromrolla.com/webtech/061103-1.shtml&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=354b1675-25ad-498e-922c-eaf45dd839d4" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,354b1675-25ad-498e-922c-eaf45dd839d4.aspx</comments>
      <category>DotNet / ASP;Projects / YardSaleMap</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=bf1be2da-4b52-421f-9094-648396f6462d</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,bf1be2da-4b52-421f-9094-648396f6462d.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,bf1be2da-4b52-421f-9094-648396f6462d.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=bf1be2da-4b52-421f-9094-648396f6462d</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a title="http://aspnet.4guysfromrolla.com/articles/080206-1.aspx" href="http://aspnet.4guysfromrolla.com/articles/080206-1.aspx">http://aspnet.4guysfromrolla.com/articles/080206-1.aspx</a>
        </p>
        <p>
 
</p>
        <p>
Sending web page by email:
</p>
        <p>
          <a title="http://www.devhood.com/tutorials/tutorial_details.aspx?tutorial_id=758" href="http://www.devhood.com/tutorials/tutorial_details.aspx?tutorial_id=758">http://www.devhood.com/tutorials/tutorial_details.aspx?tutorial_id=758</a>
        </p>
        <p>
          <br />
        </p>
        <p>
          <a title="http://www.devhood.com/tutorials/tutorial_details.aspx?tutorial_id=758" href="http://www.devhood.com/tutorials/tutorial_details.aspx?tutorial_id=758">http://www.ifxplus.com/post/Send-Mail-through-SMTP-with-SSL-Authentication-like-GMail.aspx</a>
        </p>
        <p>
          <a title="http://www.devhood.com/tutorials/tutorial_details.aspx?tutorial_id=758" href="http://www.devhood.com/tutorials/tutorial_details.aspx?tutorial_id=758">
            <br />
          </a>
        </p>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=bf1be2da-4b52-421f-9094-648396f6462d" />
      </body>
      <title>Sending HTML-Formatted Email by ASP.NET 2.0</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,bf1be2da-4b52-421f-9094-648396f6462d.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,bf1be2da-4b52-421f-9094-648396f6462d.aspx</link>
      <pubDate>Fri, 19 Oct 2007 21:11:11 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a title="http://aspnet.4guysfromrolla.com/articles/080206-1.aspx" href="http://aspnet.4guysfromrolla.com/articles/080206-1.aspx"&gt;http://aspnet.4guysfromrolla.com/articles/080206-1.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Sending web page by email:
&lt;/p&gt;
&lt;p&gt;
&lt;a title="http://www.devhood.com/tutorials/tutorial_details.aspx?tutorial_id=758" href="http://www.devhood.com/tutorials/tutorial_details.aspx?tutorial_id=758"&gt;http://www.devhood.com/tutorials/tutorial_details.aspx?tutorial_id=758&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a title="http://www.devhood.com/tutorials/tutorial_details.aspx?tutorial_id=758" href="http://www.devhood.com/tutorials/tutorial_details.aspx?tutorial_id=758"&gt;http://www.ifxplus.com/post/Send-Mail-through-SMTP-with-SSL-Authentication-like-GMail.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a title="http://www.devhood.com/tutorials/tutorial_details.aspx?tutorial_id=758" href="http://www.devhood.com/tutorials/tutorial_details.aspx?tutorial_id=758"&gt;
&lt;br&gt;
&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=bf1be2da-4b52-421f-9094-648396f6462d" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,bf1be2da-4b52-421f-9094-648396f6462d.aspx</comments>
      <category>DotNet / ASP;Projects / YardSaleMap;Web</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=731f4068-3d23-422a-bd8f-fa779a2b5ddb</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,731f4068-3d23-422a-bd8f-fa779a2b5ddb.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,731f4068-3d23-422a-bd8f-fa779a2b5ddb.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=731f4068-3d23-422a-bd8f-fa779a2b5ddb</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a title="http://fredrik.nsquared2.com/viewpost.aspx?postid=403" href="http://fredrik.nsquared2.com/viewpost.aspx?postid=403">http://fredrik.nsquared2.com/viewpost.aspx?postid=403</a>
        </p>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=731f4068-3d23-422a-bd8f-fa779a2b5ddb" />
      </body>
      <title>Mark a GridView row, and move it with the up and down key</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,731f4068-3d23-422a-bd8f-fa779a2b5ddb.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,731f4068-3d23-422a-bd8f-fa779a2b5ddb.aspx</link>
      <pubDate>Mon, 10 Sep 2007 03:19:52 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a title="http://fredrik.nsquared2.com/viewpost.aspx?postid=403" href="http://fredrik.nsquared2.com/viewpost.aspx?postid=403"&gt;http://fredrik.nsquared2.com/viewpost.aspx?postid=403&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=731f4068-3d23-422a-bd8f-fa779a2b5ddb" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,731f4068-3d23-422a-bd8f-fa779a2b5ddb.aspx</comments>
      <category>DotNet / ASP;Projects / YardSaleMap</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=7f1aec69-7f07-44e2-864e-841471f52956</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,7f1aec69-7f07-44e2-864e-841471f52956.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,7f1aec69-7f07-44e2-864e-841471f52956.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=7f1aec69-7f07-44e2-864e-841471f52956</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <strong>
            <u>Building an ASP.NET Shopping Cart Using DataTables</u>
          </strong>
        </p>
        <p>
          <a title="http://www.sitepoint.com/article/net-shopping-cart-datatables" href="http://www.sitepoint.com/article/net-shopping-cart-datatables">http://www.sitepoint.com/article/net-shopping-cart-datatables</a>
        </p>
        <p>
          <a title="http://www.quantumsoftware.com.au/support/KB/Article.aspx?ID=68" href="http://www.quantumsoftware.com.au/support/KB/Article.aspx?ID=68">http://www.quantumsoftware.com.au/support/KB/Article.aspx?ID=68</a>
        </p>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=7f1aec69-7f07-44e2-864e-841471f52956" />
      </body>
      <title>Add Yard Sale Cart to web site.</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,7f1aec69-7f07-44e2-864e-841471f52956.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,7f1aec69-7f07-44e2-864e-841471f52956.aspx</link>
      <pubDate>Wed, 15 Aug 2007 21:45:34 GMT</pubDate>
      <description>&lt;p&gt;
&lt;strong&gt;&lt;u&gt;Building an ASP.NET Shopping Cart Using DataTables&lt;/u&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a title="http://www.sitepoint.com/article/net-shopping-cart-datatables" href="http://www.sitepoint.com/article/net-shopping-cart-datatables"&gt;http://www.sitepoint.com/article/net-shopping-cart-datatables&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a title="http://www.quantumsoftware.com.au/support/KB/Article.aspx?ID=68" href="http://www.quantumsoftware.com.au/support/KB/Article.aspx?ID=68"&gt;http://www.quantumsoftware.com.au/support/KB/Article.aspx?ID=68&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=7f1aec69-7f07-44e2-864e-841471f52956" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,7f1aec69-7f07-44e2-864e-841471f52956.aspx</comments>
      <category>DotNet / ASP;Projects / YardSaleMap</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=78b61987-578f-401b-9556-5f0e889cce3a</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,78b61987-578f-401b-9556-5f0e889cce3a.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,78b61987-578f-401b-9556-5f0e889cce3a.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=78b61987-578f-401b-9556-5f0e889cce3a</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <strong>
            <u>ASP.NET Page Life-Cycle</u>
          </strong>
        </p>
        <p>
          <a title="http://www.15seconds.com/issue/020102.htm" href="http://www.15seconds.com/issue/020102.htm">http://www.15seconds.com/issue/020102.htm</a>
        </p>
        <p>
          <a title="http://www.15seconds.com/issue/020102.htm" href="http://www.15seconds.com/issue/020102.htm">http://msdn.microsoft.com/en-us/library/ms178472.aspx<br /></a>
        </p>
        <p>
          <a title="http://msdn2.microsoft.com/en-us/library/7949d756-1a79-464e-891f-904b1cfc7991.aspx" href="http://msdn2.microsoft.com/en-us/library/7949d756-1a79-464e-891f-904b1cfc7991.aspx">http://msdn2.microsoft.com/en-us/library/7949d756-1a79-464e-891f-904b1cfc7991.aspx</a>
        </p>
        <ol>
          <li>
Object Initialization</li>
          <li>
Load Viewstate Data</li>
          <li>
LoadPostData Processes Postback Data</li>
          <li>
Object Load</li>
          <li>
Raise PostBack Change Events (Offended object)</li>
          <li>
Process Client-Side PostBack Event (Offending Object)</li>
          <li>
Prerender the Objects</li>
          <li>
ViewState Saved</li>
          <li>
Render to HTML</li>
          <li>
Disposal</li>
        </ol>
        <p>
          <strong>
            <u>ASP.NET AJAX Client Life-Cycle Events</u>
          </strong>
        </p>
        <p>
          <a title="http://asp.net/ajax/documentation/live/overview/AJAXClientEvents.aspx" href="http://asp.net/ajax/documentation/live/overview/AJAXClientEvents.aspx">http://asp.net/ajax/documentation/live/overview/AJAXClientEvents.aspx</a> <font color="#ff0000"> (Very
Good Article)</font></p>
        <p>
A Microsoft ASP.NET AJAX page raises the same server life-cycle events as an ASP.NET
2.0 Web page and also raises client life-cycle events.
</p>
        <p>
          <img src="http://edndoc.esri.com/arcobjects/9.2/NET_Server_Doc/developer/ADF/graphics%5Cpage_lifecycle.png" />
        </p>
        <p>
        </p>
        <img alt="ASP.NET 2.0 Page Lifecycle Chart" src="http://www.eggheadcafe.com/articles/o_aspNet_Page_LifeCycle.jpg" height="838" width="613" />
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=78b61987-578f-401b-9556-5f0e889cce3a" />
      </body>
      <title>Postback and call back Page-Lifecycle comparision</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,78b61987-578f-401b-9556-5f0e889cce3a.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,78b61987-578f-401b-9556-5f0e889cce3a.aspx</link>
      <pubDate>Wed, 15 Aug 2007 15:38:35 GMT</pubDate>
      <description>&lt;p&gt;
&lt;strong&gt;&lt;u&gt;ASP.NET Page Life-Cycle&lt;/u&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a title="http://www.15seconds.com/issue/020102.htm" href="http://www.15seconds.com/issue/020102.htm"&gt;http://www.15seconds.com/issue/020102.htm&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a title="http://www.15seconds.com/issue/020102.htm" href="http://www.15seconds.com/issue/020102.htm"&gt;http://msdn.microsoft.com/en-us/library/ms178472.aspx&lt;br&gt;
&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a title="http://msdn2.microsoft.com/en-us/library/7949d756-1a79-464e-891f-904b1cfc7991.aspx" href="http://msdn2.microsoft.com/en-us/library/7949d756-1a79-464e-891f-904b1cfc7991.aspx"&gt;http://msdn2.microsoft.com/en-us/library/7949d756-1a79-464e-891f-904b1cfc7991.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
Object Initialization&lt;/li&gt;
&lt;li&gt;
Load Viewstate Data&lt;/li&gt;
&lt;li&gt;
LoadPostData Processes Postback Data&lt;/li&gt;
&lt;li&gt;
Object Load&lt;/li&gt;
&lt;li&gt;
Raise PostBack Change Events (Offended object)&lt;/li&gt;
&lt;li&gt;
Process Client-Side PostBack Event (Offending Object)&lt;/li&gt;
&lt;li&gt;
Prerender the Objects&lt;/li&gt;
&lt;li&gt;
ViewState Saved&lt;/li&gt;
&lt;li&gt;
Render to HTML&lt;/li&gt;
&lt;li&gt;
Disposal&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
&lt;strong&gt;&lt;u&gt;ASP.NET AJAX Client Life-Cycle Events&lt;/u&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a title="http://asp.net/ajax/documentation/live/overview/AJAXClientEvents.aspx" href="http://asp.net/ajax/documentation/live/overview/AJAXClientEvents.aspx"&gt;http://asp.net/ajax/documentation/live/overview/AJAXClientEvents.aspx&lt;/a&gt;&amp;nbsp;&lt;font color="#ff0000"&gt; (Very
Good Article)&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
A Microsoft ASP.NET AJAX page raises the same server life-cycle events as an ASP.NET
2.0 Web page and also&amp;nbsp;raises client life-cycle events.
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://edndoc.esri.com/arcobjects/9.2/NET_Server_Doc/developer/ADF/graphics%5Cpage_lifecycle.png"&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img alt="ASP.NET 2.0 Page Lifecycle Chart" src="http://www.eggheadcafe.com/articles/o_aspNet_Page_LifeCycle.jpg" height="838" width="613"&gt;&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=78b61987-578f-401b-9556-5f0e889cce3a" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,78b61987-578f-401b-9556-5f0e889cce3a.aspx</comments>
      <category>DotNet / AJAX;DotNet / ASP</category>
    </item>
  </channel>
</rss>