Question

J'ai une partie Web de vue des données sur une page qui affiche un tableau de données.

Je veux permettre aux utilisateurs de choisir la colonne à trier. Je pense que la seule façon de le faire est d'aller dans les propriétés d'affichage de données, et permettent la barre d'outils avec le tri. Cela fonctionne et permet à l'utilisateur de sélectionner une colonne pour trier en utilisant une liste déroulante des colonnes. La valeur par défaut est « none », et quand chargement de la page, il n'y a pas de tri appliqué (lignes sont indiquées par leur carte d'identité, ce qui est à peu près au hasard).

Je veux que le tri par défaut à une colonne particulière - à savoir lorsque la page est d'abord ouvert, je veux que les données soient triées par une colonne « Nom ». Je ne peux pas comprendre comment y parvenir en utilisant le type de barre d'outils.

J'ai essayé spécifier une ORDER BY PRÉNOM dans l'instruction SQL qui obtient les données -. Mais cela finit redéfinissant la barre d'outils de tri, de sorte que le tri est toujours par nom, quelle que soit la sélection de tri de la barre d'outils

Il y a un autre « tri » option dans les données afficher les propriétés qui vous permet de spécifier une sorte, mais encore une fois cela outrepasse tout et rend l'option de tri de la barre d'outils inutiles (selectiong quelque chose d'autre n'a pas d'effet).

Je pense certainement 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. Je l'ai essayé de faire le nom de l'élément sélectionné dans la zone déroulant en changeant à -. Ce qui rend la colonne de nom sélectionné dans la liste déroulante par défaut, mais le tri est pas réellement appliquée

Toutes les idées?

<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>
Était-ce utile?

La solution

James, Recherchez le paramètre de liaison dvt_sortfield marqué, puis écrire manuellement: Par défaut = ligne « FIELDNAME ». Cela devrait faire l'affaire.

ParameterBinding Name = "dvt_sortfield" default = "ID" Emplacement = "Postback; Connexion"

Si vous devez changer la valeur par défaut sorte il y a aussi un paramètre appelé type dvt_sortdir et vous pouvez le configurer à nouveau dans la balise ParameterBinding.

Dan

Autres conseils

Qu'est-ce qui se passe si vous sélectionnez la colonne Nom d'abord dans le SQL?

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