Voici la configurationSupprimer un paramètre de DetailsView ItemUpdating
- J'ai un
DetailsView
dontDataSource
est unObjectDataSource
. - Le
ObjectDataSource
a deux méthodes, sélectionner et mettre à jour, qui sont des procédures stockées définies dans unTableAdapter
. La procédure stockéeSelect
prend 1 paramètre - l'ID d'enregistrement - et renvoie les champs renseignés dansDetailsView
. - La procédure stockée
Update
prend trois paramètres: l'ID d'enregistrement et deux champs de données.
Le processus de sélection fonctionne correctement.
Cependant, lorsque le Je soumets la mise à jour, je reçois l'erreur suivante:
ObjectDataSource
could not find a non-generic methodUpdate
that has parameters: [all 21 table columns]
Je suis en train de seulement passer les (3) les champs nécessaires à la Update
procédure stockée, mais le DetailsView
tente apparemment mettre à jour en utilisant tous les champs reçus de Select
.
Je sais que je peux accéder à la collection NewValues
de DetailsViewUpdateEventArgs
, mais je ne vois pas une façon de supprimer l'un des paramètres afin qu'ils correspondent à la définition de la procédure stockée, le TableAdapter
et le ObjectDataSource
.
Des idées?
D'accord, nous allons dans la bonne direction. Dans le didacticiel auquel Aaron s'est connecté, j'ai trouvé ceci: "Pour nous assurer que ObjectDataSource appelle la surcharge [correcte] UpdateProduct ... nous devons restreindre la GridView à des champs éditables pour seulement le ProductName et le UnitPrice. accompli en supprimant les autres BoundFields et CheckBoxFields, en définissant la propriété ReadOnly des autres champs sur true, ou par une combinaison des deux. – dneaster3
Maintenant le problème est que tous les champs dans mon DetailsView sont TemplateFields, et ils n'ont aucune propriété ReadOnly. Supprimer simplement le EditItemTemplate n'a pas fonctionné, et je ne peux pas, dans ce cas, supprimer complètement les champs pendant DetailsViewMode.Edit. Donc, même si j'ai une meilleure compréhension du processus, je n'ai toujours pas convaincu .NET d'utiliser la bonne méthode de mise à jour. – dneaster3