Sto usando un FormView
e legandolo a a SqlDataSource
utilizzando una stored procedure per modificare un record. Il fatto è che dopo aver aggiornato il record ho bisogno di chiamare un'altra funzione, che sto facendo usando il onClick
attributo del pulsante.
Questa funzione deve inserire alcuni record in un'altra tabella, usando l'ID del record modificato nel FormView
. So come usare SCOPE_IDENTITY
quando nella stessa stored procedure, ma questa volta ho bisogno di una logica che è più facile da realizzare nel code-behind, ma non so come ottenere l'ID, quindi qualsiasi lead sarebbe grande.
Ecco il pulsante:
<asp:Button ID="EditButton" runat="server" CausesValidation="True" CommandName="Update"
Text="Edit" OnClick="setProcessProgress" />
Ed ecco una versione ridotta del codice dietro:
protected void setProcessProgress(object sender, EventArgs e)
{
int ID_p;
ID_p = ; //TODO: Here I need to obtain the ID of the last edited record from the EditButton
setProgress(ID_p);
}
La stored procedure è semplice UPDATE
dichiarazione.
Sto pensando di passare un parametro al codice, ma non sono sicuro di come, forse qualcosa del genere OnClick="setProcessProgress(@id)"
risposte:
1 per risposta № 1prova in questo modo e devi allegare OnCommand="CommandEventHandler"
gestore di eventi al tuo pulsante. controlla per maggiori informazioni Button.Command
<asp:Button ID="EditButton" runat="server" CausesValidation="True" CommandName="Update"
Text="Edit"
CommandArgument="1"
OnCommand="CommandBtn_Click" />
e il codice per ottenere l'ID
protected void CommandBtn_Click(Object sender, CommandEventArgs e)
{ if (e.CommandName == "Update")
{
yourID =Convert.ToInt32(e.CommandArgument);
}
}
0 per risposta № 2
È possibile utilizzare il parametro out per la procedura dell'archivio degli aggiornamenti. Questo ti darà l'ID dopo
aggiornare.
Quindi puoi usare l'ID per il tuo inserto.