2010-07-07 17 views
1

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">&apos; + this.options[this.selectedIndex].value + &apos;</xsl:variable> 
       <xsl:variable name="clvar2_dvt_sortfield">&apos; + this.options[this.selectedIndex].fieldtype + &apos;</xsl:variable> 
       <xsl:variable name="clvar3_dvt_sortfield">&apos; + this.options[this.selectedIndex].title + &apos;</xsl:variable> 
       <xsl:variable name="clvar4_dvt_sortfield">&apos; + this.options[this.selectedIndex].sorttype + &apos;</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> 

Répondre

2

James, Recherchez la liaison de paramètres appelée dvt_sortfield, puis écrivez manuellement dans: Default = "FIELDNAME" line. Cela devrait faire l'affaire.

ParameterBinding Name = « dvt_sortfield » default = « ID » Emplacement =; paramètre « Postback Connection »

Si vous devez changer il sorte la valeur par défaut est aussi une sorte appelée dvt_sortdir et vous pouvez le configurer à nouveau dans la Balise ParameterBinding.

Dan

+0

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

0

+0

Unfortunatley, cela semble faire aucune différence :( –