Arhive de categorii: jQuery şi SharePoint

Iute Vîrf: Adăugarea jQuery la pagini de publicare MOSS

Atunci când creşterea MOSS publising pagini folosind jQuery, Am lovit următoarele speed bump:

Eroare de server în ' /’ Aplicarea.


Eroare de parser-ul

Descriere: Eroare în timpul parsarea de o resursă necesară pentru această cerere de serviciu. Vă rugăm să revedeţi următoarele detalii specifice a parse eroare şi modifica fişierul sursă corespunzător.

Mesaj de eroare parser-ul: Controalele de conținut sunt permise doar direct într-o pagină de conţinut, care conţine controalele de conținut.

Sursa eroare:

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

Fişierul sursă: /_catalogs/masterpage/KCC_FacultyMember.aspx    Linie: 12


Informaţii despre versiunea: Microsoft .NET Framework versiunea:2.0.50727.4927; ASP.NET versiune:2.0.50727.4927

A fost destul de uşor pentru a stabili (h/t la colegul meu, Sorin smit).  Asiguraţi-vă că codul jQuery trăieşte în interiorul "PlaceHolderAdditionalPageHead", aşa cum se Arată:

<ASP:ContentPlaceholderID de conţinut = "PlaceHolderAdditionalPageHead" Runat = "server">

<script-ul

    tip = text/javascript""

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

</script-ul>

<script-ul de tip = "text/javascript">

  $(document).gata(funcţia() {

   // Genial jQuery chestii merge aici.

   });

</script-ul>

</scop>

Aboneaza-te la blog-ul meu.

Urmaţi-mă pe Twitter, la http://www.twitter.com/pagalvin

În laudă de jQuery Enhanced căutare-ca-tu-tip (de Jan Tielens)

Sunt de lucru pe un demo BPOS (în curând, pentru a fi disponibile până la Microsoft pe site) şi am vrut să adăugaţi un pic de atractivitate. Am cunoscut despre Jan Tielen eforturile pentru un timp destul şi am crezut că ar fi o tehnica de mare pentru a adăuga la demo, aşa că am făcut. Puteţi citi despre el aici: http://weblogs.asp.net/jan/archive/2009/07/02/sharepoint-search-as-you-type-with-jquery.aspx. Este atât de simplu să-l utilizaţi, probabil, ar trebui să fie o crima (şi poate este undeva).

Adaug doar două puncte de la ceea ce el a creat deja / a scris despre:

  1. Acest lucru face, de fapt, lucra la o BPOS (SharePoint online) mediu.
  2. A face să funcţioneze fără un prefix de mesaj popup enervant referinţa la Biblioteca jquery cu https în loc de http, ca şi în:
<script-ul de tip ="text/javascript" src ="https://AJAX.googleapis.com/Ajax/libs/jQuery/1.3.2/jQuery.min.js"></script-ul>

Jan subliniază faptul că, probabil, ar trebui să treacă Biblioteca în sine la site-ul. Simt un pic lenesa azi, I decided to blog about it instead 🙂

</scop>

Acesta este un alt post în meu serie de curs cum să utilizaţi jQuery cu SharePoint.
Dacă doriţi să aflaţi mai multe despre jQuery, Am foarte recomanda: jQuery în acţiune Bear Bibeault şi Yehuda Katz.

Aboneaza-te la blog-ul meu.

Urmaţi-mă pe Twitter, la http://www.twitter.com/pagalvin

Technorati Tags:

Asigurarea vederi de bibliotecă SharePoint lista/Document pare (un fel de) Este posibil cu jQuery

Acesta este un alt post în meu serie de curs cum să utilizaţi jQuery cu SharePoint.
Dacă doriţi să aflaţi mai multe despre jQuery, Am foarte recomanda: jQuery în acţiune Bear Bibeault şi Yehuda Katz.

Unul dintre primele lucruri pe care am crezut, Odată ce am început să joace în jurul cu jQuery, a fost dacă am putea folosi pentru a asigura o vizualizare SharePoint. Răspunsul este "nu" (sau cel puţin, Nu sunt pretinzând că este posibil). Cu toate acestea, este cu siguranţă posibil pentru a face dificil pentru oameni să vadă special.

Am inceput cu mediul meu nisip atunci când lucrează la acest lucru. Am scris despre acest mediu aici: Rapid şi uşor: Create Your Own jQuery cutia cu nisip pentru SharePoint.

Pentru a "fixa" o, urmaţi aceşti paşi:

  1. Creaţi o vizualizare care doriţi pentru a asigura. Am făcut asta şi a numit-o "Asigurat Vezi".

    Aceasta este ceea ce arata ca atunci când acesta este nu "asigurat":

    image

  2. Adăugaţi o parte de editor de conţinut web pe pagina folosind truc descrise în articolul nisip (adică. Adauga "pageviews = partajate&ToolPaneView = 2" de la URL-ul).
  3. Dau seama ta _spUserId SharePoint urmând aceşti paşi nebun, crezi sau nu:
    1. Intraţi în mediul de SharePoint.
    2. În câmpul de adresă a browserului web, tip: "javascript:alertă(_spUserId").
    3. Înregistrează rezultatul (este "13" in cazul meu).

      image

  4. Adăugaţi următoarele javascript să vă CEWP în Vizualizare cod:

    <script-ul de tip ="text/javascript"
        src =".. /.. /jQuery Library/jQuery-1.3.2.min.js">
    </script-ul>
    
    <script-ul de tip ="text/javascript">
      $(funcţia() {
    
        alertă(_spUserId);
    
        var theSecuredView = $("iframe[FilterLink * = securizate % 20View]');
    
        Dacă ((theSecuredView.length > 0) && (_spUserId == 13))
          $("iframe[FilterLink * = securizate % 20View]').părinte().părinte().părinte().HTML("<TR bgcolor = roşu><TD>Nu Vezi pentru tine!</TD></TR>");
      });
    
    </script-ul>
    

Am inclus acest alertă(_spUserId) linie acolo pentru a demonstra cum acest lucru nu este cu adevărat un "asigurarea" o, dar pur şi simplu ceea ce face mai greu pentru a vedea. Mai mult pe faptul că într-o clipă.

Practic, jQuery este în căutarea pentru un iFrame de pe pagina care are un atribut care conţine "Securizat % 20View" în valoarea acestuia. După ce se constată, vom verifica pentru a vedea dacă utilizatorul curent este "13". În cazul în care este, am mers până DOM pentru a o <TR> Tag-ul (care m-am gândit de vizualizare sursă şi de urmărire a) şi apoi de înlocuire care TR tag-ul cu mesajul meu. Eu chiar nu ştiu cât de robust este (Eu sunt foarte suspecte, de fapt), dar a lucrat în mea cu nisip. Dacă am găsi o cale mai bună, Voi blog despre ea. Acesta este rezultatul:

image

Am faceţi clic pe butonul OK şi datele este înlocuit cu un mesaj roşu mare:

image

Cum poti spune, modul în care l-am pune în aplicare această soluţie de "securitate" este de a permite partea web să facă în sine. Dupa ce termina, Am suprascrie conţinutul său cu meu "nu Vezi pentru tine!"mesaj.

În ciuda faptului că nu este într-adevăr de un "securizate" "Vezi, este potenţial util şi cu unele inteligent de lucru, în cele din urmă poate fi securizabil într-un sens mai formale. Problema fundamentală este că clientul este obtinerea toate datele şi apoi, numai după ce acesta devine datele, se rade. În cazul în care clientul este obtinerea de date, un utilizator inteligent poate împiedica rularea la toate jQuery şi a vedea ceea ce el/ea vrea să vadă.

Există alte dezavantaje. Această abordare de "securitate" este bazat pe o _spUserId. Ne-ar dori să cu adevărat sigură bazat pe modelul de securitate SharePoint plin, sau cel puţin de nume de utilizator. Care devine progresiv mai greu, dar văd unele lucruri bune scris pe această temă, Deci, eu sunt plin de speranţă nu există un răspuns bun la această problemă.

Lista de vedere ei înşişi ar trebui să fie împodobite, dacă este posibil. Nu am incercat sa seama de asta. Presupun că este posibil, dar într-adevăr nu rezolvă problema fundamentale de securitate pentru că cineva ar putea încă doar să tastaţi URL-ul de vedere doresc (dacă acestea ştiau că). Cu toate acestea, Tunderea are sens. Este o caracteristică bun uzabilitate şi ajută la eclipsa lucruri. În cazul în care un utilizator final nu ştie că evenimentul Vezi există, ei, probabil, nu va încerca să-l utilizaţi. Uneori, Asta e destul de bun.

Cu noroc, Voi avea mai mult pentru a scrie pe acest subiect în timp.

</scop>

Aboneaza-te la blog-ul meu.

Urmaţi-mă pe Twitter, la http://www.twitter.com/pagalvin

Rapid şi uşor: O modalitate mai bună pentru utilizarea jQuery pentru a ascunde un câmp de Text pe un formular de SharePoint

Acesta este un alt post în meu serie de curs cum să utilizaţi jQuery cu SharePoint.
Dacă doriţi să aflaţi mai multe despre jQuery, Am foarte recomanda: jQuery în acţiune Bear Bibeault şi Yehuda Katz.

Anterior, Am scris despre utilizarea jQuery pentru a localiza şi ascunde un câmp de text pe un formular. Nu am grijă pentru abordarea specifice (Am fost înlănţuirea părinţii – pur şi simplu nu se face aceste zile, cel puţin în familii de calitate).

Când am început să mă gândesc, Ştiam că am nevoie pentru a găsi o <TR> la care am putea invoca ascunde() metoda. Efortul meu devreme pentru a găsi corect <TR> a fost ceva de genul asta:

$(' tr:a(intrare[titlu = ascunde-ma!])');

Problema cu asta este că s-ar găsi fiecare <TR> Tag-ul care a avut orice relaţie părinte pentru a ascunde de mine! câmp, chiar dacă mă ascund! este adânc în mai multe niveluri imbricate <TR>'s. Se pare că formularul meu de nisip, această expresie constată 9 diferite de TR care au ascunde-ma! ca un copil undeva în copac DOM sa. Am dat seama că am putut merge înapoi până copac din câmpul de introducere în sine, Deci, asta e cum am ajuns sa abuzeze de parinti, dar ea nu sta bine cu mine.

I-am dat unele gândit la acest lucru şi unul din lucrurile pe care am citit în cele din urmă a făcut sens: Aş putea folosi nu() metoda să tăiaţi în <TR>'s nu vreau în set meu înfăşurat. Care ma condus la acest:

$(' tr:a(intrare[titlu = ascunde-ma!])').nu(' tr:a(TR)').ascunde();

Primul bit Găseşte toate <TR> Tag-uri care au pielea mi! domeniul oriunde în propria ierarhie. Apoi benzi orice <TR> care au, de asemenea, un copil <TR>. Acest lucru lasă-ne cu un singur <TR> care:

1) Nu are nici <TR> înregistrări copil

2) Avea câmpul de introducere ca copil.

Putem aplica apoi hide() metoda care rezultă şi am terminat.

Eu sunt încă un pic nervos despre acest lucru, dar nu la fel de nervos ca înlănţuirea părinţii.

Nu ştiu dacă acest lucru este o bună practică sau nu. Poate fi o modalitate mai potrivită de identificare doar <TR> că ne pasă într-o formă de SharePoint. Dacă ştiţi, vă rugăm să posta un comentariu.

</scop>

Aboneaza-te la blog-ul meu.

Urmaţi-mă pe Twitter, la http://www.twitter.com/pagalvin

Rapid şi uşor: Utilizarea jQuery pentru a ascunde un câmp de Text pe un formular de SharePoint

Acesta este un alt post în meu serie de curs cum să utilizaţi jQuery cu SharePoint.
Dacă doriţi să aflaţi mai multe despre jQuery, Am foarte recomanda: jQuery în acţiune Bear Bibeault şi Yehuda Katz.

ACTUALIZARE (deja!): Eu cred că de o modalitate mai bună de a localiza <TR> Tag-ul vreau să se ascundă şi a scris despre asta aici. Puteţi încă găsi acest articol interesant oricum aşa că eu sunt leavnig it sus.

Vreau pentru a ascunde un câmp de text, "Ascunde mi!"aşa cum se Arată:

image

JQuery următoarele nu truc pentru mine:

<script-ul de tip ="text/javascript">

  $(funcţia() {


    $(' intrare[titlu = ascunde-ma!]').părinte().părinte().părinte().ascunde();

  });

</script-ul>

Cod este de a spune, "găsi mine toate intrare câmpuri al căror titlu = ascunde-ma!. Apoi, a lua său părinte şi apoi următorul părinte şi * următorul * părinte (Pfiu!) şi invoca ascunde() metoda de lucru, orice ar se întâmplă să fie.

Am dat seama că structura părinte prin vizualizarea HTML pentru formularul care SharePoint creat ca:

<TR>
    <TD nowrap= "true" valign= "top" lăţime= "190px" Clasa= "ms-formlabel">
        <H3 Clasa= "ms-standardheader">
            <NOBR>Ascunde-mi!</NOBR>
        </H3>
    </TD>

    <TD valign= "top" Clasa= "ms-formbody" lăţime= "400px">
        <!-- Denumirea câmpului = "ascunde mi!"
                 FieldInternalName = "Hide_x0020_Me_x0021_"
                 FieldType = "SPFieldText"
        -->
        <durata de DIR= "none">
            <intrare
                nume= "m$ ctl00$ g_bdb23c2c_fde7_495f_8676_69714a308d8e$ ctl00$ ctl04$ ctl02$ ctl00$ ctl00$ ctl04$ ctl00$ ctl00$ TextField"
                tip= "text"
                maxlength= "255"
                ID-ul= "ctl00_m_g_bdb23c2c_fde7_495f_8676_69714a308d8e_ctl00_ctl04_ctl02_ctl00_ctl00_ctl04_ctl00_ctl00_TextField"
                titlul= "Ascunde mi!"
                Clasa= "ms-lung" />
                <br>
        </durata de>


    </TD>
</TR>

Această imagine arată acelaşi, dar marcate cu părinţii:

image

Prima mamă (1) este o etichetă interval. Durata de pe mamă (2) este un tag-ul TD şi apoi în cele din urmă vom ajunge la real mamă vreau să se ascundă (3) care este tag-ul TR în sine.

Aceasta este o abordare destul de teribil, cred că pentru că este extrem de dependentă de structura foarte specifice acestui formular. Când SharePoint 2010 iese, această structură de ansamblu ar putea schimba şi sparge această abordare. Ceea ce chiar vreau să fac este ambarcaţiune un jQuery selectorul care este de-a lungul liniilor de "mă găsească toate TR (şi Tag-uri numai TR) care au undeva în elementele lor copil un câmp de introducere a cărui titlu = ascunde-ma!”. Am incepand de la partea de jos şi se deplasează în sus. Presupunând că m-am gândit acest lucru, Voi posta un actualizate "rapid şi uşor" post.

</scop>

Aboneaza-te la blog-ul meu.

Urmaţi-mă pe Twitter, la http://www.twitter.com/pagalvin

Rapid şi uşor: Create Your Own jQuery cutia cu nisip pentru SharePoint

Acesta este un alt post în meu serie de curs cum să utilizaţi jQuery cu SharePoint.
Dacă doriţi să aflaţi mai multe despre jQuery, Am foarte recomanda: jQuery în acţiune Bear Bibeault şi Yehuda Katz.

Noţiuni de bază cu jQuery în SharePoint este surprinzător de uşor (pentru mine). (Am întrebări serioase despre o abordare "cele mai bune practici" pentru implementarea aceste lucruri la producţie, dar asta e pentru o altă zi). Am început doar joc cu aceasta tehnologie şi în acest scop, Am creat un mediu de nisip pentru a utiliza. Dacă sunteţi în căutarea pentru a începe cu jQuery, puteţi găsi această abordare utile.

1. Creaţi un Site gol

Creaţi un site gol undeva în site-ul şi îl numesc ceva inteligent ca "jQuery Sandbox".

2. Descarca jQuery

Puteţi descărca jQuery javascript biblioteca de aici: http://docs.jquery.com/Downloading_jQuery

Că, pentru a salva desktop.

Am fost folosind versiunea "minified".

3. Creați o bibliotecă de documente SharePoint

Site-ul tău de nisip, Creați o bibliotecă de documente.

4. Încărcaţi jQuery bibliotecă SharePoint

Acces la biblioteca de doc pe care tocmai aţi creat şi încărcaţi Biblioteca jQuery.

5. Creaţi o listă particularizată SharePoint

Am început cu o listă particularizată pentru că vreau să muck despre cu standardul de formulare SharePoint. Ai putea crea, de asemenea, o pagină într-o bibliotecă de pagini sau pagini parte web şi, probabil, o mulţime de alte locuri.

Adauga unele coloane în lista personalizate astfel încât să aveţi ceva pentru a rula jQuery împotriva. Obiectivele mele iniţiale au fost de a:

  1. Ascunde un câmp.
  2. Asociaţi o valoare într-un câmp.

Cu acest obiectiv în minte, Am adăugat două câmpuri de text. În timp, Eu voi fi joc cu link-uri, imagini, căutări, etc.

6. Modifica pagina parte NewForm.aspx Web şi se adaugă o parte Web Editor de conţinut

Acest lucru este un pic de negru magic-ish , în faptul că este un concept nou pentru mine. Am învăţat prima dată despre acest lucru de la Paul Grenier, SharePoint jQuery Superstar, la site-ul său proiectul CodePlex: http://spff.codeplex.com/.

Urmaţi aceşti paşi pentru a adăuga o CEWP la aceeaşi pagină care arată NewForm.aspx pentru orice listă particularizată:

  1. Accesa lista particularizată şi faceţi clic pe nou.
  2. Adăugaţi următoarele URL-ul: Vizualizare de pagină = partajate&ToolPaneView = 2

Care va transforma dumneavoastră plictisitor vanilie date formular de intrare de la ceva de genul asta:

image

La acest:

image

Adauga partea editor de conţinut web la pagina.

7. Scrie jQuery dumneavoastră primul cod

Deschide acel CEWP în Vizualizare cod şi se adaugă următoarele:

image

Aici este codul actual, dacă doriţi să copiaţi/lipiţi:

<script-ul de tip ="text/javascript"
    src =".. /.. /jQuery Library/jQuery-1.3.2.min.js">
</script-ul>

<script-ul de tip ="text/javascript">
  $(funcţia() {

    $('#resultsID').HTML("Există" + $("a").dimensiune() + "un Tag-uri Tag-uri pe această pagină.");

  });
</script-ul>

Rezultatul:
<div id ='resultsID'></div>
/rezultatul

Reţineţi că primul <script-ul> Tag-ul este corelarea reale jQuery bibliotecă. Probabil, schimba aceste lucruri în timp, Deci, veţi dori să asiguraţi-vă că o) utilizaţi numele de dreapta şi b) punct-l la biblioteca de documente SharePoint corect.

Se încălzi în gloria

În cazul în care ai facut-o corect, veţi vedea un rezultat similar cu următorul:

image

Ambalaj de

Acest lucru nu este singura modalitate de a obţine a început, dar este rapid, usor si izolate de mediul de SharePoint existente.

</scop>

Aboneaza-te la blog-ul meu.

Urmaţi-mă pe Twitter, la http://www.twitter.com/pagalvin

Rapid şi uşor: Utilizarea jQuery pentru a seta un câmp Text de valoare dintr-un formular de SharePoint

Am început să joc în jurul cu jQuery ieri. Am fost doresc să facă acest lucru pentru o lungă perioadă de timp, inca de la Paul Grenier a început să scrie seria lui despre jQuery pentru utilizatorii finali la venerabilei www.endusersharepoint.com site-ul web. Ca sa-l folosesc, Sper să adăugaţi o serie de "Rapid şi uşor" posturi ca acesta. Acest post descrie cum să setaţi valoarea unui câmp text cunoscut la tot ce vrei.

În acest scenariu, Am creat o listă particularizată al cărui formular "nou" arata ca:

image

Aceasta este forma noi pentru o listă particularizată cu coloana titlu implicit şi două coloane de listă (nu site-ul coloane; Nu cred că ea ar face nici o diferenţă).

Obiectivul este de a atribui o valoare arbitrară câmpul, "DefaultMeFieldNoSpaces" (vă pot spune eu sunt un pic de un laş cu lucru "fără spaţii" merge, dar condiment-l la sfârşitul acestui articol).

Acest bit de jQuery worked pentru eu:

<script-ul de tip ="text/javascript">

  $(funcţia() {

    $(' intrare[title = DefaultMeFieldNoSpaces]').attr(
        {valoarea: "Sunteţi într-un labirint twisty de pasaje, toate deopotrivă. "});

  });

</script-ul>

Aşa cum am înţeles acest pic de jQuery este de a spune, "Găseşte-mi orice intrare tag-ul al cărui titlu = DefaultMeFieldNoSpaces. Apoi, Setaţi toate valorile lor la o expresie celebru la un joc de calculator vechi."

Deoarece va fi doar un câmp din formular cu un titlu egal cu "DefaultMeFieldNoSpaces" ne sunt asigurate de atribuire o valoare la acel câmp nu.

Ce zici de un câmp al cărui nume conţine spaţii în ea? Este aproape la fel:

<script-ul de tip ="text/javascript">

  $(funcţia() {
     $(' intrare[title = asociaţi câmp cu spaţiu]').attr(
        {valoarea: "Sunteţi într-un labirint twisty de pasaje, toate deopotrivă. "});

  });

</script-ul>

Cred că aceasta este o abordare destul de siguranţă, ceea ce înseamnă că noi ar trebui să fie capabil de a găsi că dorim şi câmpul numai vrem. Dacă te uiţi la HTML SharePoint este oferindu-ne, este un fel de murdar:

<intrare
nume= "m$ ctl00$ g_bdb23c2c_fde7_495f_8676_69714a308d8e$ ctl00$ ctl04$ ctl02$ ctl00$ ctl00$ ctl04$ ctl00$ ctl00$ TextField"
tip= "text"
maxlength= "255"
ID-ul= "ctl00_m_g_bdb23c2c_fde7_495f_8676_69714a308d8e_ctl00_ctl04_ctl02_ctl00_ctl00_ctl04_ctl00_ctl00_TextField"
titlul= "DefaultMeFieldNoSpaces"
Clasa= "ms-lung"
/>

"titlu" iese ca un atribut recunoscut şi sperăm că unic pentru a ne identifica coloana specifice la care ne-o dorim pentru a asocia noastre valoare arbitrară ajuta.

Acesta este un concept fundamentale. Setarea un câmp în mod arbitrar ca acesta nu va câştiga orice premii. Cu toate acestea, Dacă vrem să facem mai interesant forma nivel chestii (care toate dintre noi întotdeauna vreau să fac, desigur, imediat după ce am terminat de feluri de mâncare de spălare), ca modificaţi valoarea "b de câmp" automat pe baza valorii de "câmp un", am (I) trebuie să înveţe aceste lucruri.

Cred noastre mai bună şansă de a obţine o valoare reală util aici este prin intermediul titlul, cel puţin pentru câmpuri text. Poate fi o mai bună, abordare mai fiabile. Dacă mi se pare, Voi actualiza acest post. Dacă ştiţi o modalitate mai bună, vă rugăm să lăsaţi un comentariu.</scop>

</scop>

Aboneaza-te la blog-ul meu.

Urmaţi-mă pe Twitter, la http://www.twitter.com/pagalvin