Question

J'ai une application SharePoint personnalisée page déployé sur le dossier _layouts.C'est une coutume "nouvelle forme" pour un type de contenu personnalisé.Lors de mes interactions avec cette page, j'ai besoin d'ajouter un article à ma liste.Lorsque la page se charge tout d'abord, je peux utiliser SPContext.Actuel.Liste pour voir la liste actuelle, je travaille avec.Mais après je remplis mon formulaire et le formulaire de postes en arrière sur lui-même et IsPostBack est vrai, alors SPContext.Actuel.La liste est nul donc je ne peux pas trouver la liste que j'ai besoin d'ajouter mon truc en.

Est-ce prévu?

Comment dois-je conserver quelques infos sur ma liste de contexte à travers la publication?Dois-je simplement remplir certaines asp:contrôle caché avec ma liste de guid et puis il suffit de le tirer en arrière de celui de la publication?Qui semble sûr, je suppose.

FWIW, c'est le MOSS 2007 version Standard.

Était-ce utile?

La solution

De manière générale, je essayer de le copier quelle que soit l'approche, le groupe de produits a pris lorsque vous cherchez à ajouter des fonctionnalités de mon propre.Dans ce cas, ils ajoutent leurs propres edit/view/ajouter des pages via la définition de la liste elle-même.

J'ai construit une solution qui a également eu besoin de ses propres "Nouvelle" forme, pas open source, malheureusement, mais si vous êtes intéressés, vous pouvez la télécharger, elle est appelée "Marqué Liens" (Social Bookmarking pour SharePoint) et vous pouvez trouver quelques liens sur mon blog.

Pour vous donner quelques astuces et conseils, la suite devrait vous mettre hors dans la bonne direction:

  1. Créé une nouvelle définition de la liste.
  2. Créé un nouveau Type de Contenu Dans le type de contenu que vous pouvez définir votre propre "FormTemplates" qui fait référence à un Modèle de Rendu qui déterminent ce qui est affiché dans le "Milieu" peu de ces formes.
  3. Copié le Rendu standard Modèle, mais ensuite apporté les modifications que j' nécessaire.
  4. Enveloppé le tout dans une solution, et déployé.

Mon Rendu de Modèle inclus un substituée Bouton "Enregistrer" où j'ai fait beaucoup de travail supplémentaire que j'avais à faire pendant l'enregistrement.

De toute façon, il est un peu trop de travail à mon avis, mais, je pense, c'est le plus proche de la norme approche adoptée par les développeurs du produit.Laissez-moi savoir si vous avez besoin de plus de détails et je vais voir si je peux mettre ensemble une étape-par-étape post de blog, mais j'espère que cela vous met sur la bonne direction.

Autres conseils

Je serais surpris si vous pouviez faire quelque chose dans un _Layouts fichier que vous ne pouvez pas le faire dans un modèle formulaires.Vous avez assez bien les mêmes technologies à votre disposition.

En regardant la façon dont SharePoint fonctionne avec ListItems et les Mises en pages (par exemple "Gérer les Permissions" sur un élément de liste), je peux voir qu'ils passent à certaines variables dans la via querystrings:?obj={76113B3A-LA-4389-BC85-4BB2CC5AB423},6,LISTITEM&List={76113B3A-LA-4389-BC85-4BB2CC5AB423}

Peut-être qu'ils saisir le contexte de retour à chaque fois par programmation à l'aide de ces valeurs.

Je ne suis pas en utilisant une mesure de la "nouvelle forme", donc cela pourrait ne pas s'appliquer.J'ai ajouté un récepteur d'événement à mon type de contenu personnalisé et ensuite faire tout mon code personnalisé dans le ItemAdded ou ItemAdding événements.Ce code se déclenche lorsque l'événement est ajouté à une liste.Vous pouvez utiliser le récepteur d'événements propriétés afin d'obtenir à la Liste des parents, du Web et du Site.

J'aime à penser que mon problème est "spécial" ici, depuis que je suis à l'aide d'un formulaire personnalisé.J'ai choisi d'utiliser un formulaire personnalisé plutôt que d'une coutume FormTemplate tout simplement parce que je suis en train de faire beaucoup de choses, ce n'est pas très SharePoint forme de liste (faire des appels ajax pour obtenir des informations à partir d'une application tierce, puis de générer un formulaire dynamique des éléments basés sur ajax résultat, puis le traitement ultérieur de ces données dans la publication).Je pensais que ça serait un cauchemar pour essayer ceci, dans l'habitude de rendu personnalisé mécanisme de template.

Aussi, je ne pense pas que je peux fournir le formulaire personnalisé déclarations dans la définition de la liste elle-même, parce que j'ai plusieurs types de contenu associé à cette liste, et chaque type a son propre formulaire personnalisé (l'autre type est heureusement beaucoup plus simple).

En fait, mon moyen simple de garder la liste guid dans mon champ caché a été un très faible impact moyen de remédier à ce problème spécifique.Ma principale préoccupation est que je ne suis pas sûr pourquoi, la SPContext perd toute son utilité lorsque j'ai publié ici, ce qui me fait penser que je suis en train de faire quelque chose de mal.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top