Kateqoriya Arxivləri: jQuery və SharePoint

Sadə Tip: MOSS Nəşriyyat Səhifələr jQuery durub

JQuery istifadə MOSS publising pages artırılması zaman, Mən aşağıdakı sürətli çarpma hit:

Server Error in ‘/’ Ərizə.


Parser Error

Təsvir: Bir səhv tələb xidmət üçün tələb olunan resurs üzrə analiz zamanı. Aşağıdakı xüsusi analiz səhv ətraflı nəzərdən keçirmək və müvafiq mənbə fayl değişiklik edin.

Parser Hata Mesajı: Yalnız məzmun nəzarət məzmun nəzarət olan bir içerik page birbaşa icazə verilir.

Mənbə Error:

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

Kaynak Fayl: /_catalogs / masterpage / KCC_FacultyMember.aspx    Xətt: 12


Version Məlumat: Microsoft. NET Framework versiyası:2.0.50727.4927; ASP.NET Version:2.0.50727.4927

Düzeltmek üçün kifayət qədər asan idi (h / t mənim həmkarının, Uday Ethirajulu).  Göstərildiyi kimi jQuery kodu "PlaceHolderAdditionalPageHead" içərisində yaşayır əmin olun:

<asp:Content ContentPlaceholderID="PlaceHolderAdditionalPageHead" runat="server">

<ssenari

    type="text/javascript"

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

</ssenari>

<script type="text/javascript">

  $(sənəd).hazır(funksiyası() {

   // Brilliant jQuery heyəti burada gedir.

   });

</ssenari>

</son>

Blog abunə.

Da Twitter məni izləyin http://www.twitter.com/pagalvin

JQuery Geliştirilmiş Axtarış-As-Siz-Tipi həmd ilə (Jan Tielens ilə)

Mən BPOS demo haqqında çalışıram (qısa zamanda Microsoft saytda mövcud olmaq) and I wanted to add a little pizzazz. I’ve known about Jan Tielen nin çox bir müddət səyləri və mən bu demo əlavə etmək üçün böyük bir texnika olacağını düşündüm, so I did. You can read about it here: http://weblogs.asp.net/jan/archive/2009/07/02/sharepoint-search-as-you-type-with-jquery.aspx. It’s so simple to use it should probably be a crime (və bəlkə haradasa deyil).

O, artıq yaradılmış nə üçün yalnız iki bal / haqqında yazırdı:

  1. Bu edir, faktiki olaraq, bir BPOS işləmək (SharePoint online) ətraf mühit.
  2. Bir annoying popup mesaj olmadan işləmək üçün https əvəzinə http ilə jquery kitabxana istinad prefiks, kimi:
<script type ="text/javascript" src ="https://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></ssenari>

Jan points out that you should probably move the library itself to your site. Feeling a little lazy today, I decided to blog about it instead 🙂

</son>

Bu, mənim bir yazı deyil seriyası davam istifadə etmək üçün jQuery SharePoint ilə.
Siz jQuery haqqında daha çox öyrənmək istəyirsinizsə,, Mən tövsiyə: Fəaliyyət ilə jQuery Bear Bibeault və Yehuda Katz ilə.

Blog abunə.

Da Twitter məni izləyin http://www.twitter.com/pagalvin

Technorati Tags:

SharePoint siyahısı / Document Kitabxana Views təmin görünür (növ) JQuery ilə mümkündür

Bu, mənim bir yazı deyil seriyası davam istifadə etmək üçün jQuery SharePoint ilə.
Siz jQuery haqqında daha çox öyrənmək istəyirsinizsə,, Mən tövsiyə: Fəaliyyət ilə jQuery Bear Bibeault və Yehuda Katz ilə.

Fikirləşdim ilk şey biri, bir dəfə mən jQuery ilə ətrafında oynamağa başladı, was whether we could use it to secure a SharePoint view. The answer is “no” (və ya ən azı, Mən bunu mümkün iddia deyiləm). Lakin, it is certainly possible to make it difficult for people to see a particular view.

I started with my sandbox environment when working on this. I wrote about that environment here: Tez və asan: SharePoint üçün öz jQuery Sandbox yarat.

Baxımından "təmin etmək", aşağıdakı adımları baxın:

  1. Create a view you want to secure. I did that and called it “Secured View”.

    Bu "təmin" deyil zaman kimi görünür nə:

    image

  2. Ki, Sandbox məqalədə təsvir oyun istifadə edərək görünüşü page content redaktoru Web Part əlavə et (i.e. "sahifada görünüşü = Paylaşılan əlavə et&URL-yə ToolPaneView = 2 ").
  3. Figure out your SharePoint _spUserId by following these crazy steps, iman və ya deyil:
    1. Sizin SharePoint mühit daxil ol.
    2. Web brauzer ünvan sahədə, növü: "Javascript:zirək(_spUserId ").
    3. Nəticədə qeyd (mənim halda "13" var).

      image

  4. Kodu görünümünde CEWP üçün aşağıdakı javascript əlavə et:

    <ssenari
        "text/javascript"
        src ="../../jQuery%20Library/jquery-1.3.2.min.js">
    </ssenari>
    
    <script type ="text/javascript">
      $(funksiyası() {
    
        zirək(_spUserId);
    
        oldu theSecuredView = $("Iframe[FilterLink * = Təminatlı% 20View]');
    
        əgər ((theSecuredView.length > 0) && (_spUserId == 13))
          $("Iframe[FilterLink * = Təminatlı% 20View]').valideyn().valideyn().valideyn().html("<tr bgcolor = red><TD>Sizə heç bir görünüşü!</TD></tr>");
      });
    
    </ssenari>
    

Mən daxil olduğunuz alert(_spUserId) Bu, həqiqətən bir baxış "təmin" deyil necə nümayiş etdirmək üçün orada xətt, but simply making it more difficult to see. More on that in a moment.

Əsasən, jQuery is looking for an iFrame on the page who has an attribute that contains “Secured View” in its value. Once it finds it, we check to see if the current user is “13”. If it is, biz üçün DOM qədər gəzmək <TR> tag (I mənbə görüntülerken və bu axtarış tərəfindən həyata fiqurlu) və sonra mənim mesajı ilə TR tag əvəz. Mən, həqiqətən, bu necə sağlam bilmirəm (Mən çox şübhəli Ben, faktiki olaraq), but it worked in my sandbox. If I find a better way, Mən bu barədə blog lazımdır. Bu nəticə:

image

Mən OK düyməsini basın və məlumat böyük qırmızı mesajı ilə əvəz olunur:

image

Siz deyə bilərsiniz kimi,, the way I’ve implement this “security” solution is to allow the web part to render itself. After it finishes, Mən sizə mənim "No baxımından onun məzmunu yazmaq!"Mesajı.

Bu, həqiqətən bir "təhlükəsiz" görünüşü deyil ki, baxmayaraq, O potensial faydalı və bəzi ağıllı iş ilə var, it may eventually be securable in a more formal sense. The fundamental issue is that the client is getting all the data and then, bu məlumatların əldə sonra, it wipes it out. If the client is getting the data, bir ağıllı istifadəçi bütün çalışan olan jQuery qarşısını almaq və o / o görmək istəyir nə edə bilərsiniz.

There are other drawbacks. This “security” approach is based off a _spUserId. We’d want to really secure based on the full SharePoint security model, or at least by user name. That becomes progressively harder, amma bu mövzuda yazılı yaxşı keçirmək, mən ki, problem yaxşı bir cavab var ümidliyəm.

Özləri işlənmiş edilməlidir fikir siyahısı, if possible. I haven’t tried to figure that out. I assume it’s possible, kimsə hələ yalnız istədikləri baxımından URL yazın bilər, çünki, lakin həqiqətən fundamental təhlükəsizlik problemi həll etmir (onlar bilirdi, əgər). Lakin, trimming makes sense. It’s a good usability feature and it helps to obfuscate things. If an end user doesn’t know that the view event exists, they probably won’t try to use it. Bəzən, ki, kifayət qədər yaxşı.

Luck ilə, Mən vaxt keçdikcə bu mövzuda yazmaq üçün daha çox lazımdır.

</son>

Blog abunə.

Da Twitter məni izləyin http://www.twitter.com/pagalvin

Tez və asan: SharePoint Form bir mətn sahəsində gizlətmək jQuery istifadə daha yaxşı bir şəkildə

Bu, mənim bir yazı deyil seriyası davam istifadə etmək üçün jQuery SharePoint ilə.
Siz jQuery haqqında daha çox öyrənmək istəyirsinizsə,, Mən tövsiyə: Fəaliyyət ilə jQuery Bear Bibeault və Yehuda Katz ilə.

Əvvəl, I wrote about how to use jQuery to locate and hide a text field on a form. I didn’t care for the specific approach (Mən chaining valideynləri idi - sadəcə bu gün həyata deyilmi, ən azı keyfiyyətli ailələrində).

Mən ilk bu barədə düşünmək başlayanda, Mən tapmaq üçün lazım bilirdi <TR> to which I could invoke the hide() üsul. My early effort to find the correct <TR> bu kimi bir şey:

$('Tr:var(giriş[title = Me Gizlət!])');

Ki, problem hər tapmaq olardı ki, <TR> tag that had any parent relationship to the Hide Me! sahə, Məni gizlət hətta! dərin bir çox səviyyələrdə iç içə edir <TR>’s. It turns out that on my sandbox form, ifadə tapır 9 Məni gizlət olan müxtəlif TR Agentliyi! as a child somewhere in its DOM tree. I realized that I could walk back up the tree from the input field itself, belə ki, sui-valideynləri qədər başa necə, lakin bu, mənim yaxşı oturmaq etməyib.

Mən nəhayət edilmiş mənada oxumaq bu və bir şeyi bəzi fikir verdi: Mən istifadə edə bilmədi() həyata kəsmək üsulu <TR>’s I don’t want in my wrapped set. Bu məni gətirib:

$('Tr:var(giriş[title = Me Gizlət!])').yox('Tr:var(tr)').gizləmək();

İlk bit bütün tapır <TR> Me gizlət ki tags! field anywhere in their own hierarchy. It then strips out any <TR> də bir uşaq var ki, <TR>. This leaves us with a single <TR> o:

1) Yoxdur <TR> uşaq qeydlər

2) Does have the input field as child.

Daha sonra saxla müraciət edə bilər() nəticəsində set və biz tamamlayın üsulu.

Mən hələ bu barədə bir az sinir Ben, chaining valideynləri kimi həm sinir deyil.

I don’t know if this is a best practice or not. There may be a more appropriate way of identifying just the <TR> that we care about in a SharePoint form. If you know, Şərh göndərin.

</son>

Blog abunə.

Da Twitter məni izləyin http://www.twitter.com/pagalvin

Tez və asan: SharePoint Form bir mətn sahəsində gizlətmək jQuery istifadə

Bu, mənim bir yazı deyil seriyası davam istifadə etmək üçün jQuery SharePoint ilə.
Siz jQuery haqqında daha çox öyrənmək istəyirsinizsə,, Mən tövsiyə: Fəaliyyət ilə jQuery Bear Bibeault və Yehuda Katz ilə.

UPDATE (artıq!): Mən tapmaq üçün daha yaxşı yol hesab etməyib <TR> Mən gizlətmək və istədiyiniz tag burada yazıb. You may still find this article interesting anyway so I’m leavnig it up.

Mən bir metin domain gizlətmək istəyirsinizsə, "Məni gizlət!"Kimi göstərilir:

image'

Aşağıdakı jQuery mənim üçün oyun edir:

<script type ="text/javascript">

  $(funksiyası() {


    $('Input[title = Me Gizlət!]').valideyn().valideyn().valideyn().gizləmək();

  });

</ssenari>

Kod deyib, "Mənə onun title = Me gizlət bütün giriş sahələrdə tapmaq!. Sonra, ana və sonra növbəti valideyn və * növbəti * valideyn almaq (Phew!) və saxla ibadət() ki, şey üsulu, bu olur nə.

Mən SharePoint kimi göstərilən yaratdığı forması üçün HTML görüntülerken ki, valideyn struktur fiqurlu:

<TR>
    <TD Kaydırma yok="true" valign="top" en="190px" sinfi="ms-formlabel">
        <H3 sinfi="ms-standardheader">
            <nobr>Məni gizlət!</nobr>
        </H3>
    </TD>

    <TD valign="top" sinfi="ms-formbody" en="400px">
        <!-- FieldName="Hide Me!"
                 FieldInternalName="Hide_x0020_Me_x0021_"
                 FieldType="SPFieldText"
        -->
        <aşırım siz="none">
            <giriş
                ad="ctl00$m$g_bdb23c2c_fde7_495f_8676_69714a308d8e$ctl00$ctl04$ctl02$ctl00$ctl00$ctl04$ctl00$ctl00$TextField"
                növü="text"
                maxlength="255"
                id="ctl00_m_g_bdb23c2c_fde7_495f_8676_69714a308d8e_ctl00_ctl04_ctl02_ctl00_ctl00_ctl04_ctl00_ctl00_TextField"
                başlıq="Hide Me!"
                sinfi="ms-long" />
                <br>
        </aşırım>


    </TD>
</TR>

Bu şəkil eyni göstərir, lakin valideynləri ilə qeyd:

image

İlk valideyn (1) is a span tag. Span’s parent (2) bir TD tag və sonra nəhayət biz gizlətmək istəyirsinizsə real valideyn almaq (3) olan TR tag özü.

This is a pretty terrible approach I think because it’s extremely dependent on the very specific structure of this form. When SharePoint 2010 çıxır, this whole structure could change and break this approach. What I really want to do is craft a jQuery selector that is along the lines of “find me all the TR’s (və yalnız TR tags) haradasa onların uşaq elementləri olan title = Me gizlət giriş sahədə ki!". I starting from the bottom and moving up. Assuming I figure this out, Mən yenilənir "tez və asan 'post yazmaq lazımdır.

</son>

Blog abunə.

Da Twitter məni izləyin http://www.twitter.com/pagalvin

Tez və asan: SharePoint üçün öz jQuery Sandbox yarat

Bu, mənim bir yazı deyil seriyası davam istifadə etmək üçün jQuery SharePoint ilə.
Siz jQuery haqqında daha çox öyrənmək istəyirsinizsə,, Mən tövsiyə: Fəaliyyət ilə jQuery Bear Bibeault və Yehuda Katz ilə.

SharePoint ildə jQuery Başlarken təəccüblü asandır (mənə). (Mən istehsal bu şeylər yerləşdirilməsi üçün "ən yaxşı təcrübə" yanaşma haqqında ciddi suallar var, amma ki bir gün var). I’ve just started playing with this technology and to that end, I created a sandbox environment to use. If you’re looking to get started with jQuery, Bu yanaşma faydalı ola bilər.

1. Boş site yaratmaq

Saytınıza haradasa boş bir site yaratmaq və "jQuery Sandbox" kimi ağıllı bir şey zəng.

2. JQuery Download

Buradan jQuery javascript kitabxana yükləyə bilərsiniz: http://docs.jquery.com/Downloading_jQuery

Masa üstü üçün Saxla.

Mən "minified" versiyasını istifadə edilmişdir.

3. SharePoint Document Kitabxana yarat

Sizin Sandbox saytda, create a document library.

4. SharePoint üçün jQuery Kitabxana yüklə

Yaratdığınız doc kitabxana daxil ol və jQuery kitabxana yüklemek.

5. Xüsusi SharePoint siyahısı yaradın

I’ve started with a custom list because I want to muck about with standard SharePoint forms. You could also create a page in a pages library or web part pages and probably a lot of other places.

Add some columns to the custom list so that you have something to run jQuery against. My initial objectives were to:

  1. Bir sahəsində gizlət.
  2. Bir sahəsində bir dəyər təyin.

Nəzərə ki məqsədi ilə, I added two text fields. Zamanla, Mən links ilə oynayan olacaq, şəkillər, lookups, və s..

6. Ki, NewForm.aspx Web Part Page dəyişdirin və məzmun Redaktor Web Part əlavə et

Bu, bir az qara sehrli-ish deyil , in that it’s a new concept to me. I first learned about this from Paul Grenier, SharePoint jQuery Superstar, onun CodePlex layihə saytda: http://spff.codeplex.com/.

Hər hansı bir xüsusi siyahısı üçün NewForm.aspx göstərir ki, həmin səhifə üçün bir CEWP əlavə etmək üçün aşağıdakı adımları baxın:

  1. Xüsusi siyahısına daxil və Yeni basın.
  2. URL üçün aşağıdakı əlavə: Sahifada görünüşü = Paylaşılan&ToolPaneView = 2

Bu kimi bir şey sizin qazma vanil data giriş forması çevirmək ki,:

image

Bu:

image

Səhifə içeriği redaktoru Web Part əlavə et.

7. Sizin ilk jQuery kodu yazmaq

Kodu görünüşü ki CEWP açmaq və aşağıdakı əlavə edin:

image

Siz yapışdırıb / surəti istəyirsinizsə, burada faktiki kod:

<ssenari
    "text/javascript"
    src ="../../jQuery%20Library/jquery-1.3.2.min.js">
</ssenari>

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

    $('# ResultsID').html("Var" + $('A').boy() + 'Bu səhifədə tags tags.);

  });
</ssenari>

Nəticə:
<div id ='ResultsID'></div>
/nəticə

Qeyd edək ki, ilk <ssenari> tag is referencing the actual jQuery library. Presumably, bu şeyi dəyişə, belə ki, siz əmin etmək lazımdır) doğru adı və b istifadə) doğru SharePoint sənəd kitabxana üçün qeyd.

Şöhrət Bask

Doğru yaptıysanız, aşağıdakı bənzər bir nəticə görürsünüz:

image

Up wrapping

Bu başlamaq üçün yeganə yolu deyil, lakin o tez var, easy and isolated from your existing SharePoint environment.

</son>

Blog abunə.

Da Twitter məni izləyin http://www.twitter.com/pagalvin

Tez və asan: SharePoint formu A mətn sahəsində dəyəri Set jQuery istifadə

Mən ətrafında oynamağa başladı jQuery yesterday. I’ve been wanting to do this for a long time, beri Paul Grenier açılmış yazı onun seriyası ki, qocaman da Son indi üçün jQuery haqqında www.endusersharepoint.com web site. As I use it, I hope to add a series of “Quick and Easy” posts like this one. This post describes how to set a known text field’s value to anything you want.

Bu ssenaridə, Mən onun "yeni" şəklində göstərilən görünür, xüsusi bir siyahısını yaradıb:

image

Bu default Title sütun və iki sütun siyahısı ilə xüsusi siyahı üçün yeni formasıdır (deyil site sütunları; Mən bunu heç bir fərq etmək lazımdır düşünmürəm).

Məqsəd sahəsində bir ixtiyari dəyər təyin etmək, "DefaultMeFieldNoSpaces" (Mən də "boşluq" şey davam ilə qorxaq bir qədər Ben deyə bilərsiniz, amma bu məqalənin sonunda ədviyyə qədər bunu).

JQuery Bu bit mənim üçün işləyib:

<script type ="text/javascript">

  $(funksiyası() {

    $('Input[title = DefaultMeFieldNoSpaces]').attr(
        {dəyər: "Siz keçid bir Twisty labirent var, bütün eyni.});

  });

</ssenari>

Mən belə başa düşürəm jQuery bu bit deyib, “find me any input tag whose title = DefaultMeFieldNoSpaces. Sonra, köhnə kompüter oyun bir məşhur ifadə onların dəyərləri bütün seçin. "

Yalnız "DefaultMeFieldNoSpaces" bərabər bir mövzu formada bir sahədə olacaq-ci ildən biz bu sahədə bir dəyər təyin əmin və heç bir başqa.

Onun adı bu fəzalarda bir sahə haqqında nə? It’s nearly the same:

<script type ="text/javascript">

  $(funksiyası() {
     $('Input[Space ilə title = Ata sahəsi]').attr(
        {dəyər: "Siz keçid bir Twisty labirent var, bütün eyni.});

  });

</ssenari>

Mən bu kifayət qədər təhlükəsiz yanaşma hesab edirəm ki,, meaning that we should be able to find the field that we want and only the field we want. If you look at the HTML SharePoint is giving us, bu messy növ var:

<giriş
ad="ctl00$m$g_bdb23c2c_fde7_495f_8676_69714a308d8e$ctl00$ctl04$ctl02$ctl00$ctl00$ctl04$ctl00$ctl00$TextField"
növü="text"
maxlength="255"
id="ctl00_m_g_bdb23c2c_fde7_495f_8676_69714a308d8e_ctl00_ctl04_ctl02_ctl00_ctl00_ctl04_ctl00_ctl00_TextField"
başlıq="DefaultMeFieldNoSpaces"
sinfi="ms-long"
/>

"Title" bizə bizim ixtiyari dəyər təyin etmək istədiyiniz xüsusi sütun müəyyən kömək etmək üçün tanınan və ümid unikal atributu olaraq önə çıxır.

This is a foundational concept. Setting a field in an arbitrary way like this isn’t going to win any awards. Lakin, daha maraqlı formda stuff etmək istəyirsinizsə (hamımız həmişə bunu istəyirik, əlbəttə, biz yeməklər yuyucu qurtararaq dərhal sonra), avtomatik olaraq "sahəsində bir" dəyəri əsasında "yatağının b" dəyəri dəyişmək istəyirəm, biz (Mən) bu şeylər öyrənmək lazımdır.

Burada bir real faydalı dəyər almaq üçün ən yaxşı şansı adı ilə hesab edirəm ki,, at least for text fields. There may be a better, more reliable approach. If I find it, Bu güncelleme lazımdır. If you know a better way, Şərh tərk edin.</son>

</son>

Blog abunə.

Da Twitter məni izləyin http://www.twitter.com/pagalvin