J'ai un composant WebPart d'affichage des données sur une page qui affiche une table de données.Vue des données Sharepoint barre d'outils de la partie Web tri par défaut
Je souhaite autoriser les utilisateurs à choisir la colonne à trier. Je pense que la seule façon de faire cela est d'aller dans les propriétés de vue de données, et activer la barre d'outils avec le tri. Cela fonctionne et permet à l'utilisateur de sélectionner une colonne à trier en utilisant une liste déroulante de colonnes. La valeur par défaut est 'none', et lorsque la page est chargée, il n'y a pas de tri appliqué (les lignes sont affichées par leur ID, ce qui est plutôt aléatoire). Je souhaite que le tri par défaut soit une colonne particulière, c'est-à-dire lorsque la page est ouverte pour la première fois, je souhaite que les données soient triées par une colonne "Nom de famille". Je ne peux pas comprendre comment y parvenir en utilisant le tri de la barre d'outils. J'ai essayé de spécifier un ORDER BY SURNAME dans l'instruction SQL qui obtient les données - mais cela finit par surcharger le tri de la barre d'outils, donc le tri est toujours par le nom, indépendamment de la sélection du tri de la barre d'outils. Une autre option de «tri» dans les propriétés de la vue de données permet de spécifier un tri, mais cela annule tout et rend inutile l'option de tri de la barre d'outils (la sélection de quelque chose d'autre n'a aucun effet).
Je pense sûrement qu'il doit y avoir une solution à ce problème simple?
Le code généré pour la barre d'outils de tri est ci-dessous. J'ai essayé de faire le nom de famille de l'élément sélectionné dans la liste déroulante en changeant à - ceci rend la colonne de nom de famille sélectionnée dans la liste déroulante par défaut mais le tri n'est pas réellement appliqué.
Des idées? Que se passe-t-il si vous sélectionnez d'abord la colonne Nom dans le SQL?
<table cellSpacing="0" cellPadding="2" border="0" class="ms-toolbar" style="margin-left: 3px; margin-right: 5px;">
<tr>
<td id="dvt_tb_sort" nowrap=""><table><tr><td nowrap="" class="ms-toolbar"><nobr>Sort by: <select>
<xsl:variable name="clvar1_dvt_sortfield">' + this.options[this.selectedIndex].value + '</xsl:variable>
<xsl:variable name="clvar2_dvt_sortfield">' + this.options[this.selectedIndex].fieldtype + '</xsl:variable>
<xsl:variable name="clvar3_dvt_sortfield">' + this.options[this.selectedIndex].title + '</xsl:variable>
<xsl:variable name="clvar4_dvt_sortfield">' + this.options[this.selectedIndex].sorttype + '</xsl:variable>
<xsl:attribute name="OnChange">javascript:<xsl:value-of select="ddwrt:GenFireServerEvent(concat('NotUTF8;dvt_sortfield={', $clvar1_dvt_sortfield, '};dvt_sortdir={', $dvt_sortdir, '};dvt_sorttype={', $clvar4_dvt_sortfield, '}'))" /></xsl:attribute>
<option value="">None</option>
<option value="Location">
<xsl:if test="$dvt_sortfield='Location'">
<xsl:attribute name="selected">yes</xsl:attribute>
</xsl:if>
Location</option>
<option value="Email">
<xsl:if test="$dvt_sortfield='Email'">
<xsl:attribute name="selected">yes</xsl:attribute>
</xsl:if>
Email</option>
<option value="Mobile">
<xsl:if test="$dvt_sortfield='Mobile'">
<xsl:attribute name="selected">yes</xsl:attribute>
</xsl:if>
Mobile</option>
<option value="Position">
<xsl:if test="$dvt_sortfield='Position'">
<xsl:attribute name="selected">yes</xsl:attribute>
</xsl:if>
Position</option>
<option value="Telephone">
<xsl:if test="$dvt_sortfield='Telephone' and not($dvt_sorttype='number')">
<xsl:attribute name="selected">yes</xsl:attribute>
</xsl:if>
Telephone</option>
<option value="Telephone" sorttype="number">
<xsl:if test="$dvt_sortfield='Telephone' and $dvt_sorttype='number'">
<xsl:attribute name="selected">yes</xsl:attribute>
</xsl:if>
Telephone(Number)</option>
<option value="Forename">
<xsl:if test="$dvt_sortfield='Forename' or $dvt_sortfield=''">
<xsl:attribute name="selected">yes</xsl:attribute>
</xsl:if>
Forename</option>
<option value="Surname">
<xsl:if test="$dvt_sortfield='Surname'">
<xsl:attribute name="selected">yes</xsl:attribute>
</xsl:if>
Surname</option>
</select><a>
<xsl:attribute name="href">
<xsl:choose>
<xsl:when test="$dvt_sortdir='descending'">javascript:<xsl:value-of select="ddwrt:GenFireServerEvent(concat('dvt_sortfield={', $dvt_sortfield, '};dvt_sortdir={ascending}'))" /></xsl:when>
<xsl:otherwise>javascript:<xsl:value-of select="ddwrt:GenFireServerEvent(concat('dvt_sortfield={', $dvt_sortfield, '};dvt_sortdir={descending}'))" /></xsl:otherwise>
</xsl:choose>
</xsl:attribute>
<xsl:if test="$dvt_sortfield" ddwrt:cf_ignore="1"><img border="0">
<xsl:attribute name="src">
<xsl:choose>
<xsl:when test="$dvt_sortdir='descending'"><xsl:value-of select="ddwrt:FieldSortImageUrl('Asc')" /></xsl:when>
<xsl:otherwise><xsl:value-of select="ddwrt:FieldSortImageUrl('Desc')" /></xsl:otherwise>
</xsl:choose>
</xsl:attribute>
<xsl:attribute name="alt">
<xsl:choose>
<xsl:when test="$dvt_sortdir='descending'">Descending</xsl:when>
<xsl:otherwise>Ascending</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
</img></xsl:if>
</a></nobr></td></tr></table></td><td width="99%"></td>
</tr>
</table>
Works pour moi, merci Dan je suis entré dans « Paramètres Editor » sur la barre latérale WebPart Affichage de données, et modifiées pour avoir: et –