Hola,
Asi tengo yo el gridview creado para actualizar filas, pero hago todo manual. y si tienes que crear templatefields.
Código:
<asp:GridView ID="gCitas" runat="server" BackColor="White"
BorderColor="#E7E7FF" BorderStyle="None" BorderWidth="1px" CellPadding="3"
GridLines="Horizontal" AutoGenerateColumns="False"
onrowediting="gCitas_RowEditing" DataKeyNames="IDGEN,CIP,FCP"
onrowupdated="gCitas_RowUpdated" onrowupdating="gCitas_RowUpdating"
onselectedindexchanged="gCitas_SelectedIndexChanged"
onrowcancelingedit="gCitas_RowCancelingEdit" Font-Size="Small">
<FooterStyle BackColor="#B5C7DE" ForeColor="#4A3C8C" Font-Size="Small" />
<RowStyle BackColor="#E7E7FF" ForeColor="#4A3C8C" Font-Size="Small" />
<EmptyDataRowStyle Font-Size="Small" />
<Columns>
<asp:TemplateField HeaderText="IDGEN" InsertVisible="False"
SortExpression="IDGEN" Visible="False">
<EditItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Eval("IDGEN") %>'></asp:Label>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label4" runat="server" Text='<%# Bind("IDGEN") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Cedula" SortExpression="CIP" Visible="False">
<EditItemTemplate>
<asp:Label ID="Label2" runat="server" Text='<%# Eval("CIP") %>'></asp:Label>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label5" runat="server" Text='<%# Bind("CIP") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Fecha Citado" SortExpression="FCP">
<EditItemTemplate>
<asp:Label ID="LabelMensaje" runat="server" ForeColor="Red"
Text="Por favor seleccione la fecha" Font-Size="Small"></asp:Label>
<asp:Calendar ID="Calendario" runat="server" BackColor="White"
BorderColor="#3366CC" BorderWidth="1px" CellPadding="1"
DayNameFormat="Shortest" Font-Names="Verdana" Font-Size="8pt"
ForeColor="#003399" Height="100px" Width="180px"
onselectionchanged="Calendario_SelectionChanged">
<SelectedDayStyle BackColor="#009999" Font-Bold="True" ForeColor="#CCFF99" />
<SelectorStyle BackColor="#99CCCC" ForeColor="#336666" />
<WeekendDayStyle BackColor="#CCCCFF" />
<TodayDayStyle BackColor="#99CCCC" ForeColor="White" />
<OtherMonthDayStyle ForeColor="#999999" />
<NextPrevStyle Font-Size="8pt" ForeColor="#CCCCFF" />
<DayHeaderStyle BackColor="#99CCCC" ForeColor="#336666" Height="1px" />
<TitleStyle BackColor="#003399" BorderColor="#3366CC" BorderWidth="1px"
Font-Bold="True" Font-Size="10pt" ForeColor="#CCCCFF" Height="25px" />
</asp:Calendar>
<br />
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Eval("FCP","{0:dd/MM/yyyy}") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Turno" SortExpression="TP">
<EditItemTemplate>
<asp:DropDownList ID="TipoTurno" runat="server"
SelectedValue='<%# Eval("TP") %>'>
<asp:ListItem>Mañana</asp:ListItem>
<asp:ListItem>Tarde</asp:ListItem>
<asp:ListItem>Todo el dia</asp:ListItem>
</asp:DropDownList>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label2" runat="server" Text='<%# Bind("TP") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Procesado" SortExpression="PCP">
<EditItemTemplate>
<asp:DropDownList ID="TextoProcesado" runat="server"
SelectedValue='<%# Eval("PCP") %>'>
<asp:ListItem Value="SI">SI</asp:ListItem>
<asp:ListItem>NO</asp:ListItem>
</asp:DropDownList>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label3" runat="server" Text='<%# Bind("PCP") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:CommandField ShowEditButton="True" />
</Columns>
<PagerStyle BackColor="#E7E7FF" ForeColor="#4A3C8C" HorizontalAlign="Right" />
<SelectedRowStyle BackColor="#738A9C" Font-Bold="True" ForeColor="#F7F7F7"
Font-Size="Small" />
<HeaderStyle BackColor="#4A3C8C" Font-Bold="True" ForeColor="#F7F7F7"
Font-Size="Small" />
<EditRowStyle Font-Size="X-Small" />
<AlternatingRowStyle BackColor="#F7F7F7" />
</asp:GridView>
luego jugar con los eventos:
protected void gCitas_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
protected void gCitas_RowEditing(object sender, GridViewEditEventArgs e)
protected void gCitas_RowUpdating(object sender, GridViewUpdateEventArgs e)
protected void gCitas_SelectedIndexChanged(object sender, EventArgs e)