2011-12-09 10 views
6

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

5

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.

+0

Ho lo stesso problema per il mio gridview. È possibile che tu inserisca il codice per l'evento click del pulsante ?? – developthestars

0

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.

0

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.

Problemi correlati