2010-11-19 27 views
0

Comment puis-je mettre à jour la vue Détails par programme. PAS via SQL DataSource ou via l'assistant. Je souhaite mettre à jour la vue Détails de Code-Behind (.cs)par programmation UPDATE Détails Affichage C#

J'ai une liste déroulante chargée avec UserNames, Up sur Sélection du nom d'utilisateur, je suis en train de charger la vue Détails avec informations utilisateur.

Maintenant, je veux fournir la fonctionnalité de mise à jour par programmation.

Comment puis-je faire cela? ..

+0

Voulez-vous laisser l'utilisateur mettre à jour les informations détaillées? Qu'est-ce que vous utilisez pour rendre l'information? Winform, Webform, MVC? – Holystream

Répondre

0

Essayez de mettre un panneau de mise à jour sur les détails View. Ajouter un déclencheur de publication asynchrone au panneau - l'événement de changement de la liste déroulante.

Définissez la liste déroulante sur l'autopostback.

Vous obtiendrez le comportement souhaité sans publication complète.

Vous pourriez être en mesure de faire mieux, mais cela fonctionnera.

+0

Je fais ce que vous avez dit, mais ma question est de savoir comment mettre à jour le programme DetailsView en utilisant C#? – msbyuva

+0

Utiliser le gestionnaire d'événements - dropdown's selectedindexchanged – Broam

0

Si vous affichez déjà des données sur n'importe quel formulaire après la sélection de la liste déroulante, vous utiliserez probablement l'événement "SelectedIndexChanged" dans le champ .

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) 
{ 
     StringBuilder sb = new StringBuilder(); 
     // show user details for example by get the data from db 
     string query = "SELECT userId, UserName FROM Users"; 
     SqlConnection conn = new SqlConnection("conn string"); 
     SqlCommand comd = new SqlCommand(query, conn); 
     conn.Open(); 
     using(SqlDataReader r = comd.ExecuteReader()) 
     { 
      while(r.Read()) 
      {     
      sb.AppendLine(r.GetInt32(0) + ", " + r.GetString(1));     
      } 
      conn.Close(); 
     } 
     textBox1.Text = sb.ToString(); 
} 

effectuer pour actualiser les données par seting index désiré:

this.comboBox1.SelectedIndex = 0; 

il invoque envent SelectedIndexChanged et actualiser les informations détaillées utilisateur.

Bien sûr, vous pouvez le faire plus efficace.

[EDIT]

Vous pouvez mettre à jour les données dans la base de données en affichant la vue détaillée dans le contrôle DataGridView connecté à db:

SqlDataAdapter adapter = new SqlDataAdapter("select * from users", conn); 
DataSet ds = new DataSet(); 
adapter.Fill(ds); 
dataGridView1.DataSource = ds.Tables[0]; 

modifier des données dans DataGridView et après tout:

adapter.Update(ds); 

fait!

+0

Je veux éditer et mettre à jour les valeurs dans la base de données de DetailsView .. Comment puis-je le faire, rien à voir avec Dropdown je pense? .. – msbyuva

+0

Anwer édité - voir à [EDIT] section – UGEEN

+0

Hey, j'ai 20 colonnes dans les informations de l'utilisateur. Donc, ce ne serait pas bien ces 20 champs dans GridView car ce sera une ligne horizontale qui traversera ma page. Désolé si je pose une question stupide, puis-je afficher Gridview Records dans Vertical comme DetailsView ?? – msbyuva