2010-06-03 13 views
0

Nous avons créé un modèle de liste personnalisée par programmation en utilisant Feature.xml, Element.xml, Schema.xml AllItems.aspx et 3 formulaires aspx. Nous avons un code derrière le fichier pour chacun de ces fichiers aspx. c'est-à-dire pour AllItems.aspx, DispForm.aspx, EditForm.aspx et NewForm.aspx.Enregistrer l'erreur de conflit lors de la tentative d'ajout de nouveaux éléments de liste au moment de la création de la liste

Le fichier de problème est AllItems.aspx. Dans le code du fichier AllItems.aspx, nous supprimons les éléments de la liste précédente et ajoutons de nouveaux éléments à la liste avant de les afficher à l'utilisateur. Conformément aux attentes, le code derrière le fichier pour AllItems.aspx est dérivé de WebPartPage Class et nous avons essayé de surcharger plusieurs méthodes sans beaucoup de succès.

Le problème se produit uniquement lors du premier rendu, c'est-à-dire lors de la création d'une instance de cette liste. Lors de la substitution de OnLoad(), nous obtenons l'erreur Save conflict, similaire à la méthode OnInit(), CreateChildControls(). Cependant, lorsque nous remplaçons la méthode Render() ou RenderChildren(), aucune erreur de ce type n'apparaît, mais nos nouveaux éléments de liste ne sont pas visibles en même temps. Lors de l'actualisation du navigateur, tout fonctionne correctement comme prévu. C'est seulement pour la première fois que la question se pose.

Quelle pourrait en être la cause? Toutes les idées, suggestions seraient très appréciées.

Cordialement,

Raghu

+0

Quelqu'un avec des suggestions s'il vous plaît? – Raghu

+0

Avez-vous mis EnsureChildControls dans votre code CreatChildControls? –

+0

Non. Je n'ai pas installé EnsureChildControls lors de l'utilisation de la méthode CreateChildControls. – Raghu

Répondre

0

moi avons eu un problème avec une coutume EditForm.aspx. J'ai deux listes qui sont liées ensemble et un changement dans un entraîne un gestionnaire d'événement pour mettre à jour l'autre. J'ai un contrôle personnalisé dans EditForm.aspx qui édite la liste liée. Cela a amené le gestionnaire d'événements à mettre à jour l'élément affiché par EditForm.aspx. Cela à son tour provoquerait l'erreur de conflit lorsque l'utilisateur a enregistré le formulaire.

J'ai finalement trouvé que je pouvais réinitialiser le contexte avec:

SPContext.Current.ResetItem(); 

Je ne suis pas sûr que cela vous aidera dans votre cas, mais il fixe mon problème.

+0

note: cela entraînera des conflits réels à ne pas être détectés. – jkg0