2010-11-16 22 views
0

J'ai une page qui lie les données de DB à un DetailsView.La commande DetailsView Update ne se met pas à jour tant que tous les champs ne sont pas présents!

Je souhaite utiliser la commande de mise à jour générée automatiquement.

Tout s'est bien passé, et la mise à jour a également réussi, mais si je supprime un champ que je ne souhaite pas mettre à jour, la commande Update ne sera pas mise à jour! les anciennes valeurs conservent!

Je veux dire: si tous les champs sont présents dans detailsView, la mise à jour sera OK, sinon, la mise à jour ne mettra PAS à jour quoi que ce soit.

J'ai essayé de marquer les champs que je ne veux pas voir comme "Visible = 'faux'" mais sans de bons résultats!

Comment cacher certains champs?

Merci :)

Répondre

0

Avez-vous essayé de mettre le champ que vous ne souhaitez pas mettre à jour à « ReadOnly = True » aussi? Cela devrait les marquer comme ne pas être mis à jour.

+0

Merci, qui devrait rendre le champ à apparaître, mais pas actualisable, mais je suis pas le but de la voir du tout! –

+0

Didi vous essayez de faire 'Visible = False' et 'ReadOnly = True'? – Sashenka

+0

Oui j'ai essayé, mais cela considéré comme il n'est pas inclus du tout, aucune mise à jour s'est produite :( –

0

Voici une façon de le faire ..

protected void DetailsView1_ModeChanged(object sender, EventArgs e) 
{ 
    if (DetailsView1.CurrentMode == DetailsViewMode.Edit) 
    { 
     foreach (DataControlField fd in DetailsView1.Fields) 
     { 
      BoundField tmp = fd as BoundField; 
      if (tmp != null) 
       if (tmp.DataField == "YourReadOnlyColumnName") 
        tmp.ReadOnly = true; 
     } 

    } 
} 
+0

Merci, cela devrait rendre le champ à apparaître, mais pas modifiable, mais je vise à ne pas voir du tout! –