Ciao a tutti...sto cercando di rendere possibile la modifica dei record visualizzati cliccando sul pulsante edit con questo codice:
il codice conncettualmente funziona il problema sta nel fatto che il valore text della textbox non è quello che io ci digit prima di cliccare su aggiorna bensì il contenuto precedente.
___________visualizza.aspx______________
<h3>Gestione Comuni</h3>
<form runat="server">
<aspataGrid
id="risultati"
DataKeyField="idComune"
AutoGenerateColumns="False"
OnEditCommand="setEditMode"
OnUpdateCommand="update"
runat="server" >
<Columns>
<asp:EditCommandColumn
EditText="Edit"
UpdateText="Aggiorna">
</asp:EditCommandColumn>
<asp:BoundColumn HeaderText="idComune"
DataField="idComune"
ReadOnly="True"
/>
<asp:BoundColumn HeaderText="Nome"
DataField="nome"/>
<asp:BoundColumn HeaderText="C A P"
DataField="cap"/>
<asp:BoundColumn HeaderText="Provincia"
DataField="provincia"/>
</Columns>
</aspataGrid>
</form>
________________________________
mentre questo è il codebehind:
_______________visualizza.cs_________
public void update(object sender, DataGridCommandEventArgs e) {
System.Data.OleDb.OleDbConnection connessione = prova3.Global.getConnessione();
System.Data.OleDb.OleDbCommand sql = new System.Data.OleDb.OleDbCommand();
String pid = risultati.DataKeys[e.Item.ItemIndex].ToString();
TextBox nome = (TextBox) e.Item.Cells[2].Controls[0];
Response.Write(pid);
Response.Write(nome.Text);
String strNome = nome.Text;
String strCap = "66666";
String strProvincia = "rg";
sql.CommandText ="UPDATE tblComuni SET nome = '" + strNome
+ "', cap = '" + strCap
+ "', provincia = '" + strProvincia
+ "' WHERE idComune = " + pid;
sql.Connection = connessione;
connessione.Open();
sql.ExecuteNonQuery();
sql.Connection.Close();
risultati.EditItemIndex=-1;
bindDataGrid(this,e);
}
}
______________________________