Nella mia pagina ASP.NET, sto utilizzando un GridView per visualizzare i dati (articoli & i loro prezzi). Attualmente gli utenti possono modificare i dati (prezzi) nella griglia riga per riga. (Fare clic su -> "Modifica", modificare i valori, quindi "Aggiorna"). Questo è ROW di ROW. È possibile aprire tutte le righe in modalità Modifica & utilizzare un solo pulsante (ad esempio Invia) per aggiornare tutti i dati una volta?GridView ASP Tutte le righe in modalità di modifica
risposta
Se non è necessario leggere solo la modalità, in tal caso è possibile inserire caselle di immissione (casella di testo, elenco a discesa, ecc.) Nella sezione ItemTEmplate
e collegarle con i dati esistenti.
Successivamente, inserire un pulsante di invio sopra/sotto il GridView e gestire il pulsante Click
evento e passare attraverso i dati dell'articolo GridView
e salvare tutto il database.
Inserirò il blocco di codice se necessario. Grazie per il tuo tempo.
E avrai un controllo migliore su ciò che fai usando listview anziché gridview.
La mia procedura ottimale utilizza listview e controllo utente Web personalizzato per questo tipo di problemi.
Se si riempie il listview con il controllo utente, sarà facile gestire il metodo di salvataggio, è sufficiente eseguire iterare sugli elementi listview, trovare il controllo e chiamare il metodo Save() per ciascun elemento.
so che questa domanda è già stato risposto, ma qui è il codice per ciclo attraverso il GridView recupero dei dati e lo immagazzinano nel Data Base:
Uso delle librerie:
- using System.Data ;
- utilizzando System.Data.SqlClient;
- utilizzando System.Web.Configuration;
- utilizzando System.Data.Odbc;
Codice Dietro:
// this is a variable that have the Query or SQL Commands.
string DataBaseQuery = "UPDATE [table] SET [variable2] = @variable2, [variable3] = @variable3) WHERE [variable1] = @variable1";
//Click Event from a LinkButton.
protected void LinkButton1_Click(object sender, EventArgs e)
{
//"ConnectionString" its the string connection for your DataBase (often get from the WebConfig File or a DataSource element.
using (SqlConnection connection = new SqlConnection(ConnectionString))
{
//this is for open the database using the string connection.
connection.Open();
//this is the algorithm for going through the entire GridView.
for (int i = 0; i < GridView1.Rows.Count; i++)
{
//"DataBaseQuery" it's a string variable that have the Query or SQL Commands.
SqlCommand cmd = new SqlCommand(DataBaseQuery, conexion);
//this case it's for obtain the text variable of the first column of the gridview (in my case it was the ID of the register).
cmd.Parameters.AddWithValue("@variable1", ((Label)GridView1.Rows[i].Cells[0].FindControl("Label1")).Text.ToString());
//this case it's for obtain the selected value of a DropDownList that were in the 14 th column)
cmd.Parameters.AddWithValue("@variable2", ((DropDownList)GridView1.Rows[i].Cells[15].FindControl("DropDownlist2")).SelectedValue.ToString());
//this command it's for obtain the text of a textbox that is in the 15 th column of the gridview.
cmd.Parameters.AddWithValue("@variable3", ((TextBox)GridView1.Rows[i].Cells[16].FindControl("TextBox17")).Text.ToString());
cmd.ExecuteNonQuery();
}
//after going through all the gridview you have to close the connection to the DataBase.
connection.Close();
}
}
Naturalmente è necessario regolare il codice per il vostro caso particolare, ma è molto facile. In questo codice hai l'esempio per ottenere valori per altri oggetti come labes, textbox e dropdownlist nella griglia.
Ho sofferto molto per eseguire questo codice (non sto programmando bene) ma sono felice di aiutare.
NOTA: per contare le colonne di gridview è necessario iniziare da zero. NOTA 2: Scusa per il mio pessimo inglese, a proposito ... Non è il mio linguaggio naturale.
Ho lo stesso problema per il mio gridview. È possibile che tu inserisca il codice per l'evento click del pulsante ?? – developthestars