Kategoriarkiv: jQuery og SharePoint

Quick Tips: Å legge til jQuery i MOSS publiseringssider

Når styrke MOSS publising sider ved hjelp jQuery, Jeg traff den følgende hastighet brak:

Serverfeil inne ' /’ Program.


Parserfeil

Beskrivelse: Det oppstod en feil under analysering av en ressurs som er nødvendig for å behandle denne forespørselen. Gå gjennom følgende bestemte feildetaljer og endre konfigurasjonsfilen på riktig måte.

Parserfeilmelding: Innholdskontroller er bare tillatt i en innholdsside som inneholder Content-kontroller.

Kildefeil:

 
Line 10: 
Line 11: 
Line 12: <script 
Line 13:     type="text/javascript" 
Line 14:     src="/jQuery/jquery-1.4.min.js"> 

Kildefilen: /_catalogs/masterpage/KCC_FacultyMember.aspx    Linje: 12


Versjonsinformasjon: Microsoft.Framework versjon:2.0.50727.4927; ASP.NET-versjon:2.0.50727.4927

Det var lett nok å fastsette (h/t til min kollega, Uday Ethirajulu).  Sørg for at jQuery koden bor inne "PlaceHolderAdditionalPageHead" som vist:

<ASP:Innhold ContentPlaceholderID = "PlaceHolderAdditionalPageHead" runat = "server">

<skriptet

    type = text/javascript""

    src="/jQuery/jQuery-1.4.min.js">

</skriptet>

<script type = "text/javascript">

  $(dokumentet).klar(funksjonen() {

   // Strålende jQuery ting her.

   });

</skriptet>

</slutten>

Abonner på bloggen min.

Følg meg på Twitter på http://www.twitter.com/pagalvin

I ros av jQuery utvidet søk-som-du-Type (av Jan Tielens)

Jeg jobber med en BPOS-demo (snart 's å bli anvendelig opp på Microsoft nettsted) og jeg ønsket å legge litt pizzazz. Jeg har kjent om Jan Tielen arbeidet for en stund og jeg trodde det ville være et flott teknikk for å legge til demo, så jeg gjorde. Du kan lese om den her: http://weblogs.asp.net/jan/archive/2009/07/02/sharepoint-search-as-you-type-with-jquery.aspx. Det er så enkel å bruke det sannsynligvis bør være en forbrytelse (og kanskje et sted).

Jeg legger kun to poeng til hva han allerede opprettet / skrev om:

  1. Dette gjør, faktisk, innarbeide en BPOS (SharePoint online) miljø.
  2. Å lage den arbeide uten en irriterende popup melding prefikset referansen til jquery biblioteket med https i stedet for http, som i:
<script type ="text/javascript" src ="https://Ajax.googleapis.com/AJAX/libs/jQuery/1.3.2/jQuery.min.js"></skriptet>

Jan påpeker at du sannsynligvis bør flytte biblioteket selv til webområdet. Føler litt lat dag, I decided to blog about it instead 🙂

</slutten>

Dette er en annen post i min pågående serien om hvordan du bruker jQuery med SharePoint.
Hvis du vil lære mer om jQuery, Jeg anbefaler: jQuery i aksjon Bjørn Bibeault og Yehuda Katz.

Abonner på bloggen min.

Følg meg på Twitter på http://www.twitter.com/pagalvin

Technorati Merkelapper:

Sikre SharePoint-listen/dokumentbiblioteksvisning synes (slags) Mulig med jQuery

Dette er en annen post i min pågående serien om hvordan du bruker jQuery med SharePoint.
Hvis du vil lære mer om jQuery, Jeg anbefaler: jQuery i aksjon Bjørn Bibeault og Yehuda Katz.

En av de første tingene jeg trodde, Når jeg begynte å spille med jQuery, var om vi kunne bruke den til å sikre en SharePoint-visning. Svaret er "nei" (eller i det minste, Jeg er ikke hevde at det er mulig). Men, Det er sikkert mulig å gjøre det vanskelig for folk å se en bestemt visning.

Jeg startet med min sandbox miljøet når arbeider på denne. Jeg skrev om miljøet her: Rask og enkel: Opprette din egen jQuery Sandbox for SharePoint.

Å "sikre" en visning, Bruk denne fremgangsmåten:

  1. Opprette en visning du vil sikre. Jeg gjorde det, og kalte det "Sikret View".

    Dette er hvordan det ser ut når den ikke er "sikret":

    image

  2. Legge til en webdel for innholdsredigering i visningen side ved hjelp av kunsten beskrevet i sandbox artikkel (dvs.. legge til "sidevisning = delt&ToolPaneView = 2" til URL).
  3. Regne ut din SharePoint-_spUserId ved følgende fremgangsmåte gal, tro eller ikke:
    1. Logg i SharePoint-miljøet.
    2. I nettleseren adressefelt, type: "javascript:varsel(_spUserId").
    3. Registrere resultatet (Det er "13" i mitt tilfelle).

      image

  4. Legge til følgende javascript i din CEWP i kodevisning:

    <script type ="text/javascript"
        src =".. /.. /jQuery Library/jQuery-1.3.2.min.js">
    </skriptet>
    
    <script type ="text/javascript">
      $(funksjonen() {
    
        varsel(_spUserId);
    
        var theSecuredView = $(' iframe[FilterLink * = sikret % 20View]');
    
        Hvis ((theSecuredView.length > 0) && (_spUserId == 13))
          $(' iframe[FilterLink * = sikret % 20View]').overordnede().overordnede().overordnede().HTML("<St bgcolor = rød><TD>Ingen visning for deg!</TD></tr>");
      });
    
    </skriptet>
    

Jeg har tatt som(_spUserId) linjen i det å demonstrere hvordan dette er ikke egentlig en "sikring" en visning, men bare gjør det vanskeligere å se. Mer om det i et øyeblikk.

I utgangspunktet, jQuery er på utkikk etter en iFrame på siden som har attributtet som inneholder "Sikret % 20View" i verdien. Når den finner det, vi se om gjeldende bruker er "13". Hvis det er, Vi går opp DOM til en <TR> Tag (som jeg har funnet ut, ved å vise kilde og sporing det) og deretter erstatte TR koden med min melding. Jeg vet ikke hvordan robust dette er (Jeg er veldig mistenksom, faktisk), men det virket i sandbox min. Hvis jeg finner en bedre måte, Jeg skal blogg om det.. Dette er resultatet:

image

Jeg klikker på knappen OK og dataene er erstattet med en stor rød melding:

image

Som du kan fortelle, måten jeg implementere "sikkerhet" løsningen er å tillate webdelen for å gjøre seg selv. Når den er ferdig, Jeg overskrive innholdet med min "ingen mening for deg!"melding.

Til tross for det faktum at det ikke er egentlig en "sikret '" visning, Det er potensielt nyttig og med noen smart arbeid, Det kan til slutt være sikret på en mer formell måte. Det grunnleggende problemet er at klienten blir alle data og deretter, bare når det blir dataene, det tørker den ut. Hvis klienten får dataene, en smart bruker kan hindre jQuery i å kjøre i det hele tatt og se hva han ønsker å se.

Det er andre ulemper. Denne "sikkerhet" er basert på en _spUserId. Vi ønsker å virkelig sikker basert på modellen for sikkerhet på full SharePoint, eller i det minste av brukernavn. Det blir stadig vanskeligere, men jeg ser noen gode ting som er skrevet på dette emnet, så jeg er håpefull det er et godt svar på det problemet.

Listen over visninger selv skal kuttes, Hvis mulig. Jeg har ikke prøvd å finne ut. Jeg antar det er mulig, men ikke virkelig oppklare grunnleggende sikkerhetsspørsmål fordi noen kan fortsatt bare skrive inn URL-Adressen til visningen som de ønsker (Hvis de visste det). Men, trimming fornuftig. Det er en god brukervennlighet funksjon og det hjelper for å obfuscate ting. Hvis sluttbrukeren ikke vet at hendelsen visningen finnes, de vil ikke sannsynligvis prøve å bruke den. Noen ganger, Det er god nok.

Med hell, Jeg vil ha mer å skrive om dette temaet over tid.

</slutten>

Abonner på bloggen min.

Følg meg på Twitter på http://www.twitter.com/pagalvin

Technorati Merkelapper: ,,

Rask og enkel: En bedre måte å bruke jQuery å skjule et Tekst-felt på et SharePoint-skjema

Dette er en annen post i min pågående serien om hvordan du bruker jQuery med SharePoint.
Hvis du vil lære mer om jQuery, Jeg anbefaler: jQuery i aksjon Bjørn Bibeault og Yehuda Katz.

Tidligere, Jeg skrev om hvordan du bruker jQuery å finne og skjule et tekst-felt i et skjema. Jeg likte den bestemte tilnærmingen (Jeg var chaining foreldre-det er bare ikke gjort disse dager, minst i familier av kvalitet).

Da jeg først begynte å tenke på det, Jeg visste at jeg trengte å finne en <TR> som jeg starte Skjul() metoden. Min tidlige forsøk på å finne riktig <TR> var noe som dette:

$(' St:har(inngang[tittel = gjemme meg!])');

Problemet med det er at det vil finne hver <TR> kode som hadde en overordnet relasjon til skinnet meg! feltet, Selv om gjemme meg! er nestet mange nivåer dypt i <TR>er. Det viser seg at min sandbox-skjemaet, uttrykket finner 9 forskjellige St som har gjemme meg! som barn sted i sin DOM treet. Jeg innså at jeg kunne gå tilbake opp tre fra input-feltet selv, så det er hvordan jeg endte opp misbruker foreldre, men det sitter ikke godt med meg.

Jeg ga noen trodde dette og en av tingene jeg leste endelig fornuftig: Jeg kunne bruke ikke() metoden for å klippe ut <TR>er jeg ikke ønsker i min pakket sett. Som førte meg til dette:

$(' St:har(inngang[tittel = gjemme meg!])').ikke(' St:har(tr)').Skjul();

Den første bit finner alle de <TR> koder som har gjemme meg! feltet hvor som helst i egne hierarki. Den så strimler ut noen <TR> Det har også et barn <TR>. Dette etterlater oss med en enkelt <TR> som:

1) Har ingen <TR> underordnede poster

2) Har inndatafeltet som barn.

Vi kan da bruke Skjul() metoden å det resulterende satt og vi er ferdig.

Jeg er fortsatt litt nervøs for dette, men ikke så nervøs som kjeding foreldre.

Jeg vet ikke om dette er en beste praksis eller ikke. Det kan være en mer passende måte å identifisere bare de <TR> at vi bryr oss om i et SharePoint-skjema. Hvis du vet, Vennligst legg inn en kommentar.

</slutten>

Abonner på bloggen min.

Følg meg på Twitter på http://www.twitter.com/pagalvin

Technorati Merkelapper: ,

Rask og enkel: Bruke jQuery for å skjule et Tekst-felt på et SharePoint-skjema

Dette er en annen post i min pågående serien om hvordan du bruker jQuery med SharePoint.
Hvis du vil lære mer om jQuery, Jeg anbefaler: jQuery i aksjon Bjørn Bibeault og Yehuda Katz.

OPPDATERINGEN (allerede!): Jeg tror en bedre måte å finne den <TR> koden jeg vil skjule og skrev om det her. Du kan fortsatt finne denne artikkelen interessant allikevel så jeg leavnig den opp.

Jeg vil skjule et tekstfelt, "Skjul meg!"som vist:

image

Følgende jQuery gjør utslaget for meg:

<script type ="text/javascript">

  $(funksjonen() {


    $(' input[tittel = gjemme meg!]').overordnede().overordnede().overordnede().Skjul();

  });

</skriptet>

Koden sier, "Finn meg alle innspill felt hvis tittel = gjemme meg!. Deretter, få sin overordnede og deretter overordnede og * neste * overordnede (Phew!) og påkalle Skjul() metoden på ting, hva det skulle.

Jeg fant ut at overordnede struktur ved å vise HTML for skjemaet som SharePoint opprettet som vist:

<TR>
    <TD nowrap= "true" VAlign= "topp" bredde= "190px" klassen= "ms-formlabel">
        <H3 klassen= "ms-standardheader">
            <nobr>Skjule meg!</nobr>
        </H3>
    </TD>

    <TD VAlign= "topp" klassen= "ms-formbody" bredde= "400 piksler">
        <!-- Feltnavn = "Skjul meg!"
                 FieldInternalName = "Hide_x0020_Me_x0021_"
                 FieldType = "SPFieldText"
        -->
        <utstrekningen dir= "ingen">
            <inngang
                navn= "ctl00$ m$ g_bdb23c2c_fde7_495f_8676_69714a308d8e$ ctl00$ ctl04$ ctl02$ ctl00$ ctl00$ ctl04$ ctl00$ ctl00$ TextField"
                type= "tekst"
                MaxLength= "255"
                ID= "ctl00_m_g_bdb23c2c_fde7_495f_8676_69714a308d8e_ctl00_ctl04_ctl02_ctl00_ctl00_ctl04_ctl00_ctl00_TextField"
                tittel= "Skjul meg!"
                klassen= "ms lang" />
                <br>
        </utstrekningen>


    </TD>
</TR>

Dette bildet viser den samme, men merket med foreldrene:

image

Den første overordnet (1) en span kode. Spans overordnede (2) en TD kode og så til slutt får vi virkelige overordnede jeg vil skjule (3) som er TR koden selv.

Dette er en ganske forferdelig tilnærming jeg tror fordi det er svært avhengige av spesielle strukturen av dette skjemaet. Når SharePoint 2010 kommer ut, Denne hele strukturen kan endre og bryte denne tilnærmingen. Hva jeg virkelig ønsker å gjøre er lage en jQuery selector som er langs linjene av "finne meg alle St (og bare TR koder) som har et sted i deres underordnede elementer et inndatafelt hvis tittel = gjemme meg!”. Jeg starter fra bunnen og flytte opp. Antar jeg finne dette ut, Jeg skal legge inn en oppdatert "rask og enkel ' stolpe.

</slutten>

Abonner på bloggen min.

Følg meg på Twitter på http://www.twitter.com/pagalvin

del.icio.us koder: ,

Technorati Merkelapper: ,

Rask og enkel: Opprette din egen jQuery Sandbox for SharePoint

Dette er en annen post i min pågående serien om hvordan du bruker jQuery med SharePoint.
Hvis du vil lære mer om jQuery, Jeg anbefaler: jQuery i aksjon Bjørn Bibeault og Yehuda Katz.

Komme i gang med jQuery i SharePoint er overraskende lett (til meg). (Jeg har alvorlige spørsmål om en "best praksis" tilnærming til å distribuere disse ting til produksjon, men det er for en annen dag). Jeg har nettopp begynt å spille med denne teknologien og at, Jeg opprettet en sandkasse miljø å bruke. Hvis du ønsker å komme i gang med jQuery, du finner dette nyttig.

1. Opprette et tomt område

Opprette et tomt område et sted på området og kaller det noe smart som "jQuery Sandbox".

2. Last ned jQuery

Du kan laste ned jQuery javascript biblioteket fra her: http://docs.jquery.com/Downloading_jQuery

Lagre det på skrivebordet.

Jeg har brukt den "minified" versjonen.

3. Opprette et SharePoint-dokumentbibliotek

På webområdet sandkasse, Opprett et dokumentbibliotek.

4. Laste jQuery biblioteket til SharePoint

Åpne doc biblioteket du nettopp opprettet og laste opp jQuery biblioteket.

5. Opprette en egendefinert SharePoint-liste

Jeg har begynt med en egendefinert liste fordi jeg ønsker å muck om med standard SharePoint-skjemaer. Du kan også opprette en side i sider-biblioteket eller webdel-sider og sannsynligvis mange andre steder.

Legge til noen kolonner i den egendefinerte listen slik at du har noe å kjøre jQuery mot. Mitt første mål var å:

  1. Skjule et felt.
  2. Tilordne en verdi til et felt.

Med dette målet i tankene, Jeg har lagt to tekstfelt. Over tid, Jeg skal spille med koblinger, bilder, oppslag, osv..

6. Endre NewForm.aspx webdel-siden og legge til en webdel for innholdsredigering

Dette er en liten svart magic-ish , i at det er et nytt konsept for meg. Jeg først hørte om dette fra Paul Grenier, SharePoint jQuery Superstar, på hans CodePlex prosjektområde: http://spff.codeplex.com/.

Følg denne fremgangsmåten for å legge til en CEWP på samme side som viser NewForm.aspx for en egendefinert liste:

  1. Tilgang til den egendefinerte listen og klikk ny.
  2. Legg følgende til URL: Sidevisning = delte&ToolPaneView = 2

Som vil forandre din kjedelig vanilje dataregistreringsskjema fra noe som dette:

image

Dette:

image

Legge til webdelen for innholdsredigering på siden.

7. Skrive din første jQuery koden

Åpne opp som CEWP i kode-visning og legge til følgende:

image

Her er den faktiske koden hvis du vil lime inn:

<script type ="text/javascript"
    src =".. /.. /jQuery Library/jQuery-1.3.2.min.js">
</skriptet>

<script type ="text/javascript">
  $(funksjonen() {

    $('#resultsID').HTML("Det er" + $("a").størrelse() + "en tags koder på denne siden.");

  });
</skriptet>

Resultatet:
<div id ='resultsID'></div>
/resultatet

Merk at først <skriptet> kode refererer faktisk jQuery biblioteket. Antagelig, disse tingene endres over tid, så må du sørge for at du en) bruke riktig navn og b) Pek til riktig SharePoint-dokumentbiblioteket.

Snakk

Hvis du gjorde det riktig, du vil se et resultat som ligner på følgende:

image

Innpakning opp

Dette er ikke den eneste måten å komme i gang, men det er rask, lett og isolert fra eksisterende SharePoint-miljøet.

</slutten>

Abonner på bloggen min.

Følg meg på Twitter på http://www.twitter.com/pagalvin

Technorati Merkelapper: ,

del.icio.us koder: ,

Rask og enkel: Bruke jQuery å angi a tekst feltets verdi på et SharePoint-skjema

Jeg begynte å spille jQuery i går. Jeg har lyst til å gjøre dette for lenge, helt siden Paul Grenier begynte å skrive hans serie med jQuery for sluttbrukere på den ærverdige www.endusersharepoint.com webområde. Som jeg bruker den, Jeg håper å legge en rekke "Rask og lett" innlegg som dette. Dette innlegget beskriver hvordan sette en kjent tekst feltverdi til alt du vil..

I dette scenariet, Jeg har opprettet en egendefinert liste som "nye" skjemaet ser ut som vist:

image

Dette er den nye formen for en egendefinert liste med standard Tittel-kolonnen og to listekolonner (ikke områdekolonner; Jeg tror ikke det bør gjøre noen forskjell).

Målet er å tilordne en tilfeldig verdi i feltet, "DefaultMeFieldNoSpaces" (Du kan si jeg er litt av en feiging med "ingen mellomrom" ting skjer, men jeg krydre det opp på slutten av denne artikkelen).

Denne litt jQuery arbeidet for meg:

<script type ="text/javascript">

  $(funksjonen() {

    $(' input[tittel = DefaultMeFieldNoSpaces]').attr(
        {verdi: "Du er i en svingete labyrinten av passasjer, alle like. "});

  });

</skriptet>

Som jeg forstår det denne bit av jQuery sier, «finne meg noen innspill merke hvis tittel = DefaultMeFieldNoSpaces. Deretter, sett alle sine verdier til en berømte setning fra en gammel dataspill."

Fordi det bare finnes ett felt i skjemaet med en tittel lik "DefaultMeFieldNoSpaces" er vi sikret av tilordne en verdi til feltet og ingen andre.

Hva med et felt som inneholder mellomrom? Det er nesten det samme:

<script type ="text/javascript">

  $(funksjonen() {
     $(' input[tittel = Tilordne felt med plass]').attr(
        {verdi: "Du er i en svingete labyrinten av passasjer, alle like. "});

  });

</skriptet>

Jeg tror dette er en ganske trygg tilnærming, betyr at vi skal kunne finne det vi vil og bare feltet ønsker vi. Hvis du ser på gir HTML SharePoint oss, Det er slags rotete:

<inngang
navn= "ctl00$ m$ g_bdb23c2c_fde7_495f_8676_69714a308d8e$ ctl00$ ctl04$ ctl02$ ctl00$ ctl00$ ctl04$ ctl00$ ctl00$ TextField"
type= "tekst"
MaxLength= "255"
ID= "ctl00_m_g_bdb23c2c_fde7_495f_8676_69714a308d8e_ctl00_ctl04_ctl02_ctl00_ctl00_ctl04_ctl00_ctl00_TextField"
tittel= "DefaultMeFieldNoSpaces"
klassen= "ms lang"
/>

"tittel" skiller seg ut som et gjenkjennelig og forhåpentligvis unike å hjelpe oss med å identifisere bestemte kolonnen som vi vil tildele våre vilkårlig verdi.

Dette er et grunnleggende begrep. Sette et felt på en vilkårlig måte som dette kommer ikke til å vinne noen priser. Men, Hvis vi ønsker å gjøre mer interessant form nivå ting (som alle oss alltid ønsker å gjøre, selvfølgelig, rett etter at vi vaske oppvasken), som endre verdien til "feltet b" automatisk basert på verdien av "feltet en", Vi (JEG) trenger å lære disse tingene.

Jeg tror vår beste sjanse til å få en virkelig nyttig verdi her er via tittelen, minst for tekstfelt. Det kan være en bedre, sikrere tilnærming. Hvis jeg finner det, Jeg vil oppdatere dette innlegget. Hvis du kjenner en bedre måte, Legg igjen en kommentar.</slutten>

</slutten>

Abonner på bloggen min.

Følg meg på Twitter på http://www.twitter.com/pagalvin

Technorati Merkelapper: ,