ciao, sto lavorando con una gridview e con lo stesso metodo che ho gia' usato in altre applicazioni e sempre funzionanti, ma in questo caso ho un problema e non capisco perche'.
ho una griglia del tipo
<asp:GridView ID="gv1" runat="server" AutoGenerateColumns="False" DataKeyNames="ID1" OnRowDataBound="gv1_RowDataBound" OnRowCommand="gv1_RowCommand">
<RowStyle CssClass="riga-elenco-dispari" />
<AlternatingRowStyle CssClass="riga-elenco-pari" />
<Columns>
<asp:TemplateField HeaderText="Risultati">
<HeaderStyle CssClass="elenco" />
<ItemTemplate>
<asp:ImageButton ImageUrl="~/img/Next.gif" ID="btn1" runat="server" CommandName="Select" CausesValidation="false" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
quello che a me serve è poter recuperare, per la riga selezionata (tramite l'imgeButton) l'ID1 corrispondente per quella riga. come ho sempre fatto lavoro con il command name "Select" e tramite il RowCommand eseguo solitamente codice del tipo:
protected void gv1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "Select")
{
int index = Convert.ToInt32(e.CommandArgument);
GridViewRow row = gvComuniVoto.Rows[index];
int ID1 = (int)gv1.DataKeys[index].Values["ID1"];
.........
}
}
il problema è che quando arrivo alla riga
int index = Convert.ToInt32(e.CommandArgument);
mi da errore di "formato stringa non corretto" perche' nel GridViewCommandEventArgs prende il valore del commandName ma non del commandArgument e non capisco perche'...sapete aiutarmi?? grazieeeee