none
Créer un champ texte + btn d'action sur une page -> effectuer une requête -> Obtenir le résultat sur la même page RRS feed

  • Question

  • Bonjour,

    Je souhaite avoir sur une page d'un site Sharepoint fondation 2010,

    un champ type texte pour que l'internaute indique par exemple le nom d'un client ou peut-être plutôt le n° de client qui est plus précis (une liste client est créée avec d'autres informations comme n° de client, prénom,adresse, tel, etc...) , à côté de ce champ un bouton (type submit), qui permettra d'effectuer une recherche sur cette liste (liste client) permettrai d'afficher les données correspondantes à l'ID du n° de client demandé. Les résultats devront s'afficher sur la même page. Voilà, j'ai sharepoint designer 2010 mais faire des requêtes sur des bases de données sharepoint est encore pour moi un mystère.

    Voilà, voici un petit shéma + précis...D'avance merci à la communauté si je peux trouver ici des infos qui me permettrai d'aboutir ce projet. :-)

    shéma

    vendredi 14 juin 2013 11:31

Réponses

  • Une solution "sans dev" consiste à créer une page de webpart dans le site où se trouve la liste client.

    Ensuite placez le webpart affichant la liste des clients (catégorie 'listes et bibliothèques' dans l'insertion de webpart) -> important la colonne 'clientId' servant à faire le filtre doit etre visibl

    Ensuite placez un webpart de type "formulaire" pour mettre en place la zone de texte  (catégorie 'Forms',  'HTML Form Webpart') :

    Ensuite connectez les 2 webpart pour filtrer la liste cliente en fonction de la saisie dans la zone formulaire


    Blog Sharepoint : www.paslatek.net Twitter : @LimozinLionel

    • Marqué comme réponse amethyste971 lundi 17 juin 2013 08:53
    lundi 17 juin 2013 08:18

  • Blog Sharepoint : www.paslatek.net Twitter : @LimozinLionel

    • Marqué comme réponse amethyste971 lundi 17 juin 2013 08:53
    lundi 17 juin 2013 08:19

Toutes les réponses

  • Une solution "sans dev" consiste à créer une page de webpart dans le site où se trouve la liste client.

    Ensuite placez le webpart affichant la liste des clients (catégorie 'listes et bibliothèques' dans l'insertion de webpart) -> important la colonne 'clientId' servant à faire le filtre doit etre visibl

    Ensuite placez un webpart de type "formulaire" pour mettre en place la zone de texte  (catégorie 'Forms',  'HTML Form Webpart') :

    Ensuite connectez les 2 webpart pour filtrer la liste cliente en fonction de la saisie dans la zone formulaire


    Blog Sharepoint : www.paslatek.net Twitter : @LimozinLionel

    • Marqué comme réponse amethyste971 lundi 17 juin 2013 08:53
    lundi 17 juin 2013 08:18

  • Blog Sharepoint : www.paslatek.net Twitter : @LimozinLionel

    • Marqué comme réponse amethyste971 lundi 17 juin 2013 08:53
    lundi 17 juin 2013 08:19
  • Alors là Merci beaucoup, tout le week j'ai pensé à comment j'allais faire et ce matin, bingo, tu me donnes la solutions, la classe !

    C'est extactement le comportement que je cherchais, j'avais effectivement commençé à créer une page de composant webpart et j'essayais de rajouter des éléments, contrôles, mais j'arrivais à rien obtenir, mes essais n'étaient pas concluant. Je commençai à me pencher sur le language XLS mais c'est quand même un gros morceau.

    Est-ce que tu saurais maintenant que j'ai un contôle sur l'affichage que faut-il que je modifie pour, je m'explique...

    Le webpart "Liste Client" qui se met à jour avec le procédé que tu viens de m'expliquer et qui effectue le filtre demandé, je l'ai paramétré dans les style choisis avec "Volet de visualisation" et pour l'affichage, le webpart attend un évènement de type MouseOver, pour afficher le détail,

    alors ok, Pour avoir les infos d'affichées, il suffit de pointer sur le nom du client et le détail s'affiche mais bon, si cela pouvait s'afficher automatiquement, ce serait quand même mieux. Tu aurais une piste ? :-)

    Voilà un bout du code mais je ne vois pas bien où se situe l'évènement du MouseOver

    <xsl:stylesheet xmlns:x="http://www.w3.org/2001/XMLSchema" xmlns:d="http://schemas.microsoft.com/sharepoint/dsp" version="1.0" exclude-result-prefixes="xsl msxsl ddwrt" xmlns:ddwrt="http://schemas.microsoft.com/WebParts/v2/DataView/runtime" xmlns:asp="http://schemas.microsoft.com/ASPNET/20" xmlns:__designer="http://schemas.microsoft.com/WebParts/v2/DataView/designer" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:SharePoint="Microsoft.SharePoint.WebControls" xmlns:ddwrt2="urn:frontpage:internal" xmlns:o="urn:schemas-microsoft-com:office:office"> 
      <xsl:include href="/_layouts/xsl/main.xsl"/> 
      <xsl:include href="/_layouts/xsl/internal.xsl"/> 
      									<xsl:param name="AllRows" select="/dsQueryResponse/Rows/Row[$EntityName = '' or (position() &gt;= $FirstRow and position() &lt;= $LastRow)]"/>
      									<xsl:param name="dvt_apos">&apos;</xsl:param>
    									<xsl:template match="View[ViewStyle/@ID='20']" mode="full" ddwrt:ghost="" xmlns:ddwrt2="urn:frontpage:internal">
        <script>
          function showpreview<xsl:value-of select="$ViewCounter" />(o) { 
          count = 1;
          for(i = 0; i &lt; o.childNodes.length; i++)
          {
          var child = o.childNodes[i];
          if (child.style.display == &quot;none&quot; &amp;&amp; child.tagName == &quot;DIV&quot;)
          {
              f = document.getElementById(&quot;n&quot; + count + &quot;<xsl:value-of select="$WPQ" />&quot;);
              f.innerHTML =  unescape(child.innerHTML) + &apos;&#160;&apos;;
              count ++;
            }
          }
         }
        </script>
            <table width="100%" cellspacing="0" cellpadding="0" border="0" style="" id="previewpanetable{$ViewCounter}" dir="{List/@Direction}">
          	<xsl:choose>
            	<xsl:when test="not($dvt_RowCount=0)">
              <tr>
                <td valign="top">
                  <div class="ms-ppleft">
                    <table width="100%" cellspacing="0" cellpadding="0" border="0">
                      <xsl:apply-templates select="." mode="RenderView"/>
                    </table>
                  </div>
                </td>
                <td valign="top">
                  <div id="preview1{generate-id()}" class="ms-ppright">
                    <table class="ms-formtable" border="0" cellpadding="0" cellspacing="0" width="100%">
                      	<xsl:for-each select="ViewFields/FieldRef[not(@Explicit='TRUE')]">
                        <tr>
                          <td nowrap="nowrap" valign="top" width="190px"  class="ms-formlabel">
                            <nobr>
                              <xsl:value-of select="@DisplayName"/>
                            </nobr>
                          </td>
                          <td valign="top" class="ms-formbody" width="400px" id="n{position()}{$WPQ}">
                            <xsl:text disable-output-escaping="yes" ddwrt:nbsp-preserve="yes" xmlns:ddwrt="http://schemas.microsoft.com/WebParts/v2/DataView/runtime">&amp;nbsp;</xsl:text>
                          	
                          </td>
                        </tr>
                      </xsl:for-each>
                    </table>
                  </div>
                </td>
              </tr>
            </xsl:when>
            	<xsl:otherwise>
              <tr>
                <td class="ms-vb">
                  <table class="ms-summarycustombody" cellpadding="0" cellspacing="0" border="0">
                    <xsl:call-template name="EmptyTemplate" />
                  </table>
                </td>
              </tr>
              <tr>
                <td height="5">
                  <img src="/_layouts/images/blank.gif" width="1" height="5" alt="" />
                </td>
              </tr>    
            </xsl:otherwise>
          	</xsl:choose>      
        </table>
      </xsl:template></xsl:stylesheet>

    lundi 17 juin 2013 09:12
  • la fonction apellée par le mouse hover est la fonction JS que tu as dès le début du xslt : showPreview

    Mais manifestement dans le XSL "personalisé" qui est là, n'est pas personnalisé l'appel à cette fonction (donc le mouseHover) et donc tu ne peux modifier à cet endroit.

    Honnêtement je connais mal la custo des vues via XSL, je sais juste que c'est super fastidieux et pénible...

    Il faut que tu trouve où dans le main.xsl d'origine l'appl à showProview est fait, pour savoir quel template xsl tu dois "réecrire"


    Blog Sharepoint : www.paslatek.net Twitter : @LimozinLionel

    lundi 17 juin 2013 10:20
  • Hum, hum.... OK, merci Lionel pour ton aide
    lundi 17 juin 2013 10:27