Mi aggiungo anch'io visto che mi dà lo stesso errore. Il codice della gridview è il seguente:
<Columns>
<asp:BoundField DataField="IDFaldone" HeaderText="Codice" ReadOnly="True" SortExpression="Codice" />
<asp:BoundField DataField="Tipo" HeaderText="Tipo" ReadOnly="True" SortExpression="Tipo" />
<asp:TemplateField HeaderText="Area" SortExpression="Area">
<EditItemTemplate>
<asp:DropDownList ID="AreaDropDownList" runat="server" DataValueField="IDArea" DataTextField="Descrizione"
SelectedValue='<%# DataBinder.Eval(Container.DataItem, "IDArea") %>'></asp:DropDownList>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="AreaLabel" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "IDArea") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Categoria" SortExpression="Categoria">
<EditItemTemplate>
<asp:DropDownList ID="CategoriaDropDownList" runat="server" DataValueField="IDCategoria" DataTextField="Descrizione"
SelectedValue='<%# DataBinder.Eval(Container.DataItem, "IDCategoria") %>'></asp:DropDownList>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="CategoriaLabel" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "IDCategoria") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="Descrizione" HeaderText="Descrizione" SortExpression="Descrizione" />
<asp:BoundField DataField="Proprietario" HeaderText="Proprietario" SortExpression="Proprietario" />
<asp:TemplateField HeaderText="DataArchiviazione" SortExpression="DataArchiviazione">
<EditItemTemplate>
<asp:Calendar ID="DataArchiviazioneCalendar" runat="server" BackColor="White" BorderColor="#999999"
CellPadding="4" DayNameFormat="Shortest" FirstDayOfWeek="Monday" Font-Names="Verdana"
Font-Size="8pt" ForeColor="Black" Height="180px" SelectedDate='<%# DataBinder.Eval(Container.DataItem, "Data_Operazione") %>'
VisibleDate='<%# DataBinder.Eval(Container.DataItem, "Data_Operazione") %>' Width="200px">
</asp:Calendar>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="DataArchiviazioneLabel" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "Data_Operazione") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="Anno" HeaderText="Anno" SortExpression="Anno" />
<asp:TemplateField HeaderText="Mese" SortExpression="Mese">
<EditItemTemplate>
<asp:DropDownList ID="MeseDropDownList" runat="server" SelectedValue='<%# DataBinder.Eval(Container.DataItem, "Mese") %>'>
<asp:ListItem Value="00">Tutti</asp:ListItem>
<asp:ListItem Value="01">Gennaio</asp:ListItem>
<asp:ListItem Value="02">Febbraio</asp:ListItem>
</asp:DropDownList>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="MeseLabel" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "Mese") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Sito" SortExpression="Sito">
<EditItemTemplate>
<asp:DropDownList ID="SitoDropDownList" runat="server" DataValueField="IDSito" DataTextField="Descrizione"
SelectedValue='<%# DataBinder.Eval(Container.DataItem, "IDSito") %>'></asp:DropDownList>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="SitoLabel" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "IDSito") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:CheckBoxField DataField="Imballo" HeaderText="Imballo" SortExpression="Imballo" />
<asp:BoundField DataField="Ripiano_da" HeaderText="RipianoDa" SortExpression="RipianoDa" />
<asp:BoundField DataField="Ripiano_a" HeaderText="RipianoA" SortExpression="RipianoA" ReadOnly="True"/>
<asp:BoundField DataField="Carro" HeaderText="Carro" SortExpression="Carro" />
<asp:BoundField DataField="Blocco" HeaderText="Blocco" SortExpression="Blocco" />
<asp:BoundField DataField="Status" HeaderText="Status" ReadOnly="True" SortExpression="Status" />
<asp:CommandField ButtonType="Button" EditText="Modifica" ShowEditButton="True" CancelText="Annulla" UpdateText="Conferma" />
</Columns>
Quello dell'evento rowdatabound:
protected void GridView1_RowDataBound(Object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
if (e.Row.RowIndex == this.GridView1.EditIndex)
{
DropDownList area = (DropDownList)e.Row.FindControl("AreaDropDownList");
area.DataSource = this.b.GetAree();
area.DataBind();
DropDownList sito = (DropDownList)e.Row.FindControl("SitoDropDownList");
sito.DataSource = this.b.GetSiti();
sito.DataBind();
DropDownList categoria = (DropDownList)e.Row.FindControl("CategoriaDropDownList");
categoria.DataSource = this.b.GetCategorie(Int16.Parse(area.SelectedValue));
categoria.DataBind();
}
}
}
Il problema è che mi dà l'errore sulla riga immediatamente precedente a quella dove ho cliccato il pulsante modifica. E, se non ho capito male, l'Edit Template dovrebbe entrare in gioco solo sulla riga modificata... e credo proprio sia così, visto che le prime due righe vanno bene, mentre la terza (cioè quella prima di quella da modificare) va in errore... Forse sono stato un po' contorto..