Sure, here's my gridiview :
<asp:GridView ID="GridView1" runat="server" DataSourceID="SqlDataSource1"
SkinID="Grey" AutoGenerateColumns="false" DataKeyNames="ForecastKey" AllowSorting="true"
OnRowDataBound="GridView1_RowDataBound" EditRowStyle-CssClass="dgedit" OnRowUpdated="GridView1_RowUpdated" OnRowEditing="GridView1_RowEditing"
OnRowDeleting="GridView1_RowDeleting">
<Columns>
<asp:TemplateField HeaderText="Key" SortExpression="ForecastKey">
<ItemTemplate>
<asp:Label ID="lblForecastKey" Text='<%# Bind("ForecastKey") %>' runat="server"></asp:Label>
</ItemTemplate>
<ItemStyle Height="24px" Width="50px" />
</asp:TemplateField>
<asp:TemplateField HeaderText="Company" SortExpression="CompanyName">
<ItemTemplate>
<asp:Label ID="lblCompany" Text='<%# Eval("CompanyName") %>' runat="server"></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp

ropDownList ID="ddlCompanyName" DataSourceID="SqlDataSource2" Runat="Server"
DataTextField="CompanyName" DataValueField="CompanyKey" SelectedValue='<%# Bind("CompanyKey") %>' />
</EditItemTemplate>
<ItemStyle Height="24px" Width="50px" />
</asp:TemplateField>
<asp:TemplateField HeaderText="Forecast Type" SortExpression="ForecastDescription">
<ItemTemplate>
<asp:Label ID="lblForecastType" Text='<%# Eval("ForecastDescription") %>' runat="server"></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp

ropDownList ID="ddlForecastType" DataSourceID="SqlDataSource3" Runat="Server"
DataTextField="ForecastDescription" DataValueField="ForecastType" SelectedValue='<%# Bind("ForecastType") %>' />
</EditItemTemplate>
<ItemStyle Height="24px" Width="50px" />
</asp:TemplateField>
<asp:TemplateField HeaderText="Value (£)" SortExpression="MoneyValue">
<ItemTemplate>
<asp:Label ID="lblMoneyValue" Text='<%# Eval("MoneyValue", "{0:#,###.00}") %>' runat="server"></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtMoneyValue" Text='<%# Bind("MoneyValue", "{0:#,###.00}") %>' runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server"
ControlToValidate="txtMoneyValue" Display="None" ErrorMessage="Please enter a Value" />
<asp:CompareValidator ID="CompareValidator1" runat="server" Display="None"
ErrorMessage="Value must be numeric" ControlToValidate="txtMoneyValue"
Type="Double" Operator="DataTypeCheck"></asp:CompareValidator>
</EditItemTemplate>
<ItemStyle Height="24px" Width="50px" />
</asp:TemplateField>
<asp:TemplateField HeaderText="Probability (%)" SortExpression="ProbabilityValue">
<ItemTemplate>
<asp:Label ID="lblProbability" Text='<%# Eval("ForecastPercentage") %>' runat="server"></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp

ropDownList ID="ddlForecastPercentage" DataSourceID="SqlDataSource4" Runat="Server"
DataTextField="ForecastPercentageDescription" DataValueField="ForecastPercentage" SelectedValue='<%# Bind("ForecastPercentage") %>' />
</EditItemTemplate>
<ItemStyle Height="24px" Width="50px" />
</asp:TemplateField>
<asp:TemplateField HeaderText="Value (£) x Probability (%)" SortExpression="ProbabilityValue">
<ItemTemplate>
<asp:Label ID="lblProbabilityValue" Text='<%# Eval("ProbabilityValue", "{0:#,###.00}") %>' runat="server"></asp:Label>
</ItemTemplate>
<ItemStyle Height="24px" Width="50px" />
</asp:TemplateField>
<asp:TemplateField HeaderText="Due Date" SortExpression="DueDate">
<ItemTemplate>
<asp:Label ID="lblDueDate" Text='<%# Eval("DueDate", "{0:dd/MM/yyyy}") %>' runat="server"></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtDueDate" Text='<%# Bind("DueDate", "{0:dd/MM/yyyy}") %>' runat="server"></asp:TextBox>
<!--or use this in SQL : Select Convert(VarChar(10), GetDate(), 103)-->
<asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server"
ControlToValidate="txtDueDate" Display="None" ErrorMessage="Please enter a Due Date" />
<asp:CompareValidator ID="CompareValidator2" runat="server"
Display="None" ErrorMessage="Please enter a valid Due Date in format dd/mm/yyyy"
ControlToValidate="txtDueDate" Type="Date" Operator="DataTypeCheck"></asp:CompareValidator>
</EditItemTemplate>
<ItemStyle Height="24px" Width="65px" />
</asp:TemplateField>
<asp:TemplateField HeaderText="Last Edit Date" SortExpression="LastEditDate">
<ItemTemplate>
<asp:Label ID="lblLastEditDate" Text='<%# Eval("LastEditDate", "{0:dd/MM/yyyy}") %>' runat="server"></asp:Label>
</ItemTemplate>
<ItemStyle Height="24px" Width="50px" />
</asp:TemplateField>
<asp:CommandField ShowEditButton="True" ButtonType="Link" ShowCancelButton="True"
UpdateText="Update" EditText="Edit" CancelText="Cancel" />
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton ID="DeleteButton"
CommandArgument='<%# Eval("ForecastKey") %>'
CommandName="Delete" runat="server">
Delete</asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>