Question

J'ai une liste personnalisée que j'utilise comme liste de questions fréquemment posées sur un certain nombre de sous-sites. J'ai 3 colonnes, Question, réponse et catégorie. Je veux faire le champ de la question readonly ainsi que le champ de catégorie, car ces champs seront pré-remplis.

Utilisation de la vue d'édition en ligne du ListViewWbPart, comment puis-je définir ces champs à « lecture seule »? J'ai essayé le réglage de la ControlMode à « affichage », mais cela affecte toutes mes colonnes pour une raison quelconque.

En outre, comment puis-je régler la largeur de la zone de texte pour chaque colonne en mode d'édition? J'ai essayé avec style = "width: 250px;" dans le SharePoint: FormField, mais encore une fois, il a affecté les zones de texte pour toutes les colonnes au lieu d'un seul.

Am quelque chose que je manque?

JM

Était-ce utile?

La solution 3

Ce sont de bonnes suggestions, cependant, je réussi à obtenir les résultats que je recherchais en utilisant un DataViewWebPart dans la vue par défaut plutôt que d'une ListViewWebpart. Apparemment, un DataViewWebpart est beaucoup plus souple en matière de mise en forme sharepoint: FormFields. Pour tous ceux qui luttent avec un autre ListViewWebPart, je vous recommande de passer à une place Dataview webpart.

Voici comment je l'ai fait: Ouvrez votre site dans SharePoint Designer 2010, cliquez sur Listes et bibliothèques, cliquez deux fois sur la liste que vous souhaitez ajouter une vue pour. Puis, dans la boîte « Vues » à droite, cliquez sur Nouveau, nommez votre nouvelle vue et cliquez sur OK. Maintenant, ouvrez la nouvelle vue. vous devez cacher la ListViewWebPart qui est actuellement sur le formulaire (ne sais pas pourquoi vous ne supprimer juste, mais c'est ce que je l'ai entendu). Pour masquer le webpart, trouver l'attribut « IsVisible » (ctrl F) et réglez-le à false. Maintenant, dans la vue WYSIWYG divisée, cliquez ci-dessous la ListViewWebPart. Maintenant, dans le ruban cliquez sur l'onglet Insertion, cliquez sur DataView et choisissez DataView vide. Revenons maintenant à l'éditeur WYSIWYG. Cliquez sur le lien pour choisir une source de données et cliquez sur la liste que vous souhaitez attacher. Maintenant, faites glisser dans les colonnes que vous souhaitez inclure dans votre vue.

Si vous avez besoin en ligne d'édition comme je l'ai fait, cliquez sur l'onglet Options dans le ruban, cliquez sur l'édition en ligne et choisissez les liens que vous souhaiteriez apparaître dans votre vue (insérer, modifier ou supprimer).

Maintenant, vous devriez être en mesure de faire des changements comme je l'ai fait par exemple, pour définir une colonne en lecture seule dans le mode d'édition, cliquez sur le DataviewWebPart puis cliquez sur l'onglet de conception dans le ruban. À l'extrême droite sous la rubrique « Affichage des données Aperçu, choisissez « Modifier le modèle ». Maintenant dans l'éditeur WYSIWYG, double cliquez sur le champ qui doit être en lecture seule. Cela devrait vous prendre à droite au code qui doit être modifié. Dans le sharepoint:.. balise formfield, changer l'attribut ControlMode de « Modifier » pour « Affichage » maintenant votre champ est en lecture seule

Si vous voulez modifier la largeur de la zone de texte en mode édition, suivez la même proceedure pour aller sur le terrain et jouer avec l'attribut DisplaySize ou si vous connaissez CSS, vous pouvez ajouter un CssClass sur le terrain et le style avec une feuille de style externe (recherche sur le Web pour plus d'informations sur le sharepoint: le contrôle de CssRegistration).

Autres conseils

Avez-vous essayé de placer la propriété ReadOnlyField de l'objet SPField à true?

Cela peut être fait avec un simple script PowerShell ou à l'aide de la console SharePoint projet d'application.

exemple de script PowerShell:

$w = Get-SPWeb http://localhost
$l = $w.GetList("/Lists/QA");
$f = $l.Fields["Category"];
$f.ReadOnlyField = $true
$f.Update()
$f = $l.Fields["Question"];
$f.ReadOnlyField = $true
$f.Update()

Et quand vous pré-remplir ces champs, vous pouvez activer le drapeau ReadOnlyField hors programme, définissez les valeurs, puis remettez-le à nouveau.

Vous pouvez créer 2 colonnes calculées et définir leurs valeurs pour être les colonnes que vous souhaitez être en lecture seule. Ensuite, montrer ces colonnes calculées dans la vue au lieu de la question et la catégorie.

par exemple. colonne Calculé: DisplayQuestion, Formule: = [Question]

En ce qui concerne la largeur des champs d'entrée, vous pouvez créer une forme nouvelle et modifier pour votre liste. Ensuite, vous pouvez modifier les champs spécifiques sur votre formulaire. Toutefois, si vous faites cela et ensuite ajouter de nouvelles colonnes à votre liste, ils ne seront pas visibles sur votre formulaire personnalisé. Au lieu de cela, vous pouvez utiliser jQuery sur votre page pour trouver la zone de texte et définir sa largeur:

<script src="http://code.jquery.com/jquery-1.6.1.min.js"></script>
<script type="text/javascript">
  $(function() {
    $("input[Title='Question']").css("width", "250px");
  });
</script>
Licencié sous: CC-BY-SA avec attribution
Non affilié à sharepoint.stackexchange
scroll top