Question: For customizing the dialog order I tried to follow the instructions provided in the WixToolSet site (Link[wix recommended steps](http://wixtoolset.org/documentation/manual/v3/wixui/wixui_customizations.html)) but failed to achieve result.

Steps done:

* Copied the UI from the source code to a new wxs file.
* Changed the id of th UI element
* Build the project without any further modification.

The above steps results in following error. 

Error 4 Duplicate symbol 'ControlEvent:WelcomeDlg/Next/NewDialog/VerifyReadyDlg/Installed AND PATCH' found. This typically means that an Id is duplicated.
 Check to make sure all your identifiers of a given type (File, Component, Feature) are unique. 

My intent is to make changed in installui sequence and build the solution but I couldn't proceed.

Answer: 
You make a call in `Up_Click` to 'GridView1.UpdateRow()'

From the MSDN Docs: 

> 
> Calling this method also raises the RowUpdated and RowUpdating events.
> 
> 
> 

So all you should need to do is provide empty handlers
I see that SqlDataSource1 definition in codebehind lacks the UpdateCommand definition. 
To be honest I always used the SqlDataSource2 approach, it'd be as easy as add `DataSourceID="SqlDataSource2"` and the markup would be: 

```
   <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
   AllowSorting="True" AllowPaging="True" DataKeyNames = "ID"
   DataSourceID="SqlDataSource2" Width="502px">

```

That way you can forget about if the gridview has to be bound in postbacks. Unless you place the gridview inside an UpdatePanel, I'd say it has to be bound, and then the `If Not IsPostBack Then` is incorrectly placed.

The code `<asp:TextBox runat="server" Text='<%# Bind ("Project") %>' id="TextBox4"></asp:TextBox>` looks placed outside of a databound control.