катэгорыя Архівы: JQuery і SharePoint

Quick Tip: Даданне JQuery для MOSS Выдавецкі старонкі

Пры павышэнні MOSS publising старонкі з дапамогай jQuery, Я трапіў у наступны ўдар хуткасці:

Server Error in ‘/’ Ужыванне.


Пра памылку сінтаксічнага аналізатара

Апісанне: Памылка пры разборы рэсурсу, патрабаванага для абслугоўвання гэтага запыту. Калі ласка, праглядзіце наступныя канкрэтныя звесткі пра памылку разбору і зменіце зыходны файл.

Паведамленне пра памылку сінтаксічнага аналізатара: Толькі элементы кіравання змесцівам дазваляецца непасрэдна ў змест старонкі, якая змяшчае Элементы кіравання.

Памылка Крыніца:

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

Зыходны файл: /_catalogs / MasterPage / KCC_FacultyMember.aspx    Лінія: 12


Звесткі аб версіі: Microsoft. NET Framework версіі:2.0.50727.4927; ASP.NET Version:2.0.50727.4927

Гэта было досыць лёгка выправіць (г / т да майго калегу, Удай Ethirajulu).  Будзьце ўпэўненыя, што JQuery код жыве ўнутры "PlaceHolderAdditionalPageHead", як паказана:

<аспід:Змесціва ContentPlaceHolderID = "PlaceHolderAdditionalPageHead" Runat = "Сервер">

<сцэнар

    тып = "тэкст / JavaScript"

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

</сцэнар>

<Сцэнар тып = "тэкст / JavaScript">

  $(дакумент).гатовы(функцыя() {

   // Бліскучы матэрыял JQuery тут ідзе.

   });

</сцэнар>

</канец>

Падпісацца на мой блог.

Выконвайце за мной на Twitter у http://www.twitter.com/pagalvin

Хвала JQuery пашыранага пошуку-As-You-Type (Яна Tielens)

Я працую на дэма BPOS (хутка будуць даступныя на сайце кампаніі Microsoft) and I wanted to add a little pizzazz. I’ve known about Студзень Tielen аўтара намаганняў, даволі доўгі час, і я думаў, што будзе вялікая тэхніка, каб дадаць да дэма-, 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 (і, магчыма, дзесьці).

Я дадаў толькі дзве кропкі, тое, што ён ужо створаны / пісаў пра:

  1. Гэта робіць, на самай справе, працаваць у BPOS (SharePoint Online) навакольнае асяроддзе.
  2. Каб прымусіць яго працаваць без раздражняльных усплываючых паведамленняў прэфікс спасылкай на JQuery бібліятэку з HTTPS замест HTTP, як у:
<Сцэнар тыпу ="text/javascript" SRC ="https://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></сцэнар>

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 🙂

</канец>

Гэта яшчэ адно паведамленне ў маім бягучыя серыі аб тым, як выкарыстоўваць JQuery з SharePoint.
Калі вы хочаце даведацца больш пра JQuery, Я настойліва рэкамендую: JQuery у дзеянні Мядзведзь па Bibeault і Іегуда Кац.

Падпісацца на мой блог.

Выконвайце за мной на Twitter у http://www.twitter.com/pagalvin

Technorati Тэгі:

Забеспячэнне Спіс SharePoint / Дакумент праглядаў Бібліятэка Здаецца (накшталт) Магчыма з JQuery

Гэта яшчэ адно паведамленне ў маім бягучыя серыі аб тым, як выкарыстоўваць JQuery з SharePoint.
Калі вы хочаце даведацца больш пра JQuery, Я настойліва рэкамендую: JQuery у дзеянні Мядзведзь па Bibeault і Іегуда Кац.

Адна з першых рэчаў, якія я думаў,, як толькі я пачаў гуляць з JQuery, was whether we could use it to secure a SharePoint view. The answer is “no” (або па крайняй меры, Я не сцвярджаю, што гэта магчыма). Аднак, 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: Хутка і лёгка: Стварыце свой уласны Sandbox JQuery для SharePoint.

"Бяспечныя" выгляд, выканайце наступныя дзеянні:

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

    Гэта тое, што ён выглядае, калі гэта не "забяспечаны":

    image

  2. Дадаць вэб-частка рэдактара кантэнту на старонцы выгляд, выкарыстоўваючы трук апісаны ў артыкуле пясочніцы (I.E. дадаць "PageView = Агульная&ToolPaneView = 2 "на URL).
  3. Figure out your SharePoint _spUserId by following these crazy steps, верыць ці ня:
    1. Увайдзіце ў сваю суполку SharePoint.
    2. У адраснай радку вэб-браўзэра, тып: "JavaScript:Апавяшчэнні(_spUserId ").
    3. Запішыце вынік (гэта "13" у маім выпадку).

      image

  4. Дадайце наступныя JavaScript ў Вашым CEWP ў рэжыме кода:

    <сцэнар
        "text/javascript"
        SRC ="../../jQuery%20Library/jquery-1.3.2.min.js">
    </сцэнар>
    
    <Сцэнар тыпу ="text/javascript">
      $(функцыя() {
    
        Апавяшчэнні(_spUserId);
    
        было theSecuredView = $("З даты[FilterLink * = Абаронены 20View%]");
    
        калі ((theSecuredView.length > 0) && (_spUserId == 13))
          $("З даты[FilterLink * = Абаронены 20View%]").бацька().бацька().бацька().HTML("<BGCOLOR TR = чырвоны><TD>Ніякай выгляд для вас!</TD></тр>");
      });
    
    </сцэнар>
    

Я ўключыў, што папярэджанне(_spUserId) лініі туды, каб прадэманстраваць, як гэта на самай справе не "Абарона" у выглядзе, but simply making it more difficult to see. More on that in a moment.

У асноўным, jQuery is looking for an iFrame on the page who has an attribute that contains “Secured%20View” in its value. Once it finds it, we check to see if the current user is “13”. If it is, мы ідзем уверх па DOM, каб <TR> тэг (які я высвятліў, прагледзеўшы крыніцы і трасіроўку) , А затым замяніць гэты тэг TR з маім паведамленне. Я сапраўды не ведаю, як гэта надзейны (Я вельмі падазрона, на самай справе), but it worked in my sandbox. If I find a better way, Я буду блог аб гэтым. Гэта вынік:

image

Я націскаю кнопку ОК, і дадзеныя замяняюцца з вялікай чырвонай паведамленне:

image

Што вы можаце сказаць, the way I’ve implement this “security” solution is to allow the web part to render itself. After it finishes, Я перазапісаць яго ўтрыманне з маёй "Рэжым прагляду не для вас!"Паведамленне.

Нягледзячы на ​​тое, што гэта на самай справе не «абароненай» выгляд, гэта патэнцыйна карысны і з некаторым разумным працы, it may eventually be securable in a more formal sense. The fundamental issue is that the client is getting all the data and then, Толькі пасля таго, як атрымлівае дадзеныя, it wipes it out. If the client is getting the data, разумны карыстальнік можа прадухіліць ад JQuery працуе на ўсё і паглядзець, што ён / яна хоча бачыць.

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, але я бачу некаторыя добрыя рэчы, напісаныя на гэтую тэму, таму я спадзяюся, ёсць добры адказ на гэтую праблему.

Спіс думкамі сам па сабе павінны быць абрэзаны, калі гэта магчыма. I haven’t tried to figure that out. I assume it’s possible, але на самой справе не вырашае асноўнай пытанне бяспекі, таму што хто-то яшчэ можа проста ўвесці URL меркаванне яны хочуць (калі б яны ведалі, што гэта). Аднак, 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. Часам, гэта дастаткова добра.

Пры ўдалым збегу абставінаў, У мяне будзе больш пісаць на гэтую тэму на працягу доўгага часу.

</канец>

Падпісацца на мой блог.

Выконвайце за мной на Twitter у http://www.twitter.com/pagalvin

Пазнакі del.icio.us: ,,

Хутка і лёгка: Лепшы спосаб выкарыстаць JQuery схаваць тэкставае поле формаў SharePoint

Гэта яшчэ адно паведамленне ў маім бягучыя серыі аб тым, як выкарыстоўваць JQuery з SharePoint.
Калі вы хочаце даведацца больш пра JQuery, Я настойліва рэкамендую: JQuery у дзеянні Мядзведзь па Bibeault і Іегуда Кац.

Папярэдне, 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 (Я быў ланцужкі бацькоў - гэта проста не робіцца ў гэтыя дні, па меншай меры, у сем'ях якасці).

Калі я ўпершыню пачаў думаць пра гэта, Я ведаў, што трэба знайсці <TR> у якой я мог бы выклікаць шкуру() метад. My early effort to find the correct <TR> нешта накшталт гэтага:

$('TR:ёсць(ўваход[Назва = Схаваць!])");

Праблема ў тым, што было б знайсці ўсё <TR> тэг, які меў дачыненне да аднаму з бацькоў не паказваць! поле, нават калі не паказваць! ўкладзена шмат глыбокіх узроўняў у <TR>’s. It turns out that on my sandbox form, што знаходзіць выраз 9 розных TR у якія не паказваць! as a child somewhere in its DOM tree. I realized that I could walk back up the tree from the input field itself, вось як я скончыў злоўжыванне бацькамі, але гэта не задавальняла мяне.

Я задумаўся на гэта і адна з рэчаў, якія я прачытаў, нарэшце, мае сэнс: Я мог бы выкарыстаць не() метад адсекчы <TR>’s I don’t want in my wrapped set. Гэта прывяло мяне да гэтага:

$('TR:ёсць(ўваход[Назва = Схаваць!])").ня('TR:ёсць(тр)").хаваць();

Першы біт знаходзіць усё <TR> тэгаў, якія не паказваць! field anywhere in their own hierarchy. It then strips out any <TR> , Што таксама ёсць дзіця <TR>. This leaves us with a single <TR> што:

1) Не мае <TR> даччыныя запісу

2) Does have the input field as child.

Мы можам прымяніць шкуры() метад выніковы набор, і мы зрабілі.

Я ўсё яшчэ крыху нервуецца з нагоды гэтага, але не так як нервовыя ланцужкі бацькоў.

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, калі ласка, напішыце каментар.

</канец>

Падпісацца на мой блог.

Выконвайце за мной на Twitter у http://www.twitter.com/pagalvin

Technorati Тэгі: ,

Хутка і лёгка: Выкарыстоўваць JQuery схаваць тэкставае поле формы SharePoint

Гэта яшчэ адно паведамленне ў маім бягучыя серыі аб тым, як выкарыстоўваць JQuery з SharePoint.
Калі вы хочаце даведацца больш пра JQuery, Я настойліва рэкамендую: JQuery у дзеянні Мядзведзь па Bibeault і Іегуда Кац.

АБНАЎЛЕННЕ (ўжо!): Я думаю, лепшы спосаб знайсці <TR> тэгі Я хачу, каб схаваць і пісаў пра гэта тут. You may still find this article interesting anyway so I’m leavnig it up.

Я хачу, каб схаваць тэкставае поле, "Хаваць мне!», Як паказана:

image"

Наступныя JQuery робіць гэта для мяне:

<Сцэнар тыпу ="text/javascript">

  $(функцыя() {


    $("Уваход[Назва = Схаваць!]").бацька().бацька().бацька().хаваць();

  });

</сцэнар>

Код кажуць, "Знайдзі мне ўсё поля ўводу, назва якой = Схаваць!. Затым, атрымаць яго бацькі і бацькі, і наступны * наступная * бацька (фу!) і спасылацца на шкуру() метад, што справа, усё, што здараецца,.

Я зразумеў, што мацярынскай структуры пры праглядзе HTML для формы, SharePoint, створаны, як паказана:

<TR>
    <TD NoWrap="true" VALIGN="top" шырыня="190px" клас="ms-formlabel">
        <H3 клас="ms-standardheader">
            <NOBR>Не паказваць!</NOBR>
        </H3>
    </TD>

    <TD VALIGN="top" клас="ms-formbody" шырыня="400px">
        <!-- FieldName="Hide Me!"
                 FieldInternalName="Hide_x0020_Me_x0021_"
                 FieldType="SPFieldText"
        -->
        <пралёт Вы="none">
            <ўваход
                імя="ctl00$m$g_bdb23c2c_fde7_495f_8676_69714a308d8e$ctl00$ctl04$ctl02$ctl00$ctl00$ctl04$ctl00$ctl00$TextField"
                тып="text"
                MaxLength="255"
                ID="ctl00_m_g_bdb23c2c_fde7_495f_8676_69714a308d8e_ctl00_ctl04_ctl02_ctl00_ctl00_ctl04_ctl00_ctl00_TextField"
                назва="Hide Me!"
                клас="ms-long" />
                <бр>
        </пралёт>


    </TD>
</TR>

Гэтая карціна паказвае тое ж самае, але размечаны з бацькамі:

image

Першы бацька (1) is a span tag. Span’s parent (2) з'яўляецца TD тэг і, нарэшце, мы пяройдзем да рэальных бацькоў я хачу, каб схаваць (3) , Якая з'яўляецца тэг TR сабе.

This is a pretty terrible approach I think because it’s extremely dependent on the very specific structure of this form. When SharePoint 2010 выходзіць, 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 (і толькі тэгаў TR) што ёсць дзесьці ў даччыныя элементы поля ўводу, назва якой = Схаваць!". I starting from the bottom and moving up. Assuming I figure this out, Я адпраўлю абнаўленне "хутка і лёгка" пост.

</канец>

Падпісацца на мой блог.

Выконвайце за мной на Twitter у http://www.twitter.com/pagalvin

Пазнакі del.icio.us: ,

Technorati Тэгі: ,

Хутка і лёгка: Стварыце свой уласны Sandbox JQuery для SharePoint

Гэта яшчэ адно паведамленне ў маім бягучыя серыі аб тым, як выкарыстоўваць JQuery з SharePoint.
Калі вы хочаце даведацца больш пра JQuery, Я настойліва рэкамендую: JQuery у дзеянні Мядзведзь па Bibeault і Іегуда Кац.

Пачатак працы з JQuery ў SharePoint на здзіўленне лёгка (мне). (У мяне ёсць сур'ёзныя пытанні з нагоды "лепшай практыкі" падыход да разгортвання гэтых рэчаў да вытворчасці, але гэта на другі дзень). 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, Вы можаце знайсці гэты падыход карысным.

1. Стварэнне пустога сайта

Стварыце новы сайт дзесьці на Вашым сайце, і называюць гэта нешта разумнае, як "JQuery Пясочніца».

2. Спампаваць JQuery

Вы можаце спампаваць бібліятэку JQuery JavaScript адсюль: http://docs.jquery.com/Downloading_jQuery

Захаваць, што на ваш працоўны стол.

Я выкарыстоўваю "паменшаная" версія.

3. Стварэнне бібліятэк дакументаў SharePoint

У вашай пясочніцы сайт, create a document library.

4. Загрузіце JQuery бібліятэкі SharePoint

Доступ у бібліятэку дакумент вы толькі што стварылі і загрузіць бібліятэку JQuery.

5. Стварэнне карыстацкага спісу SharePoint

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. Схаваць поле.
  2. Запісаць значэнне ў полі.

З гэтай мэтай на ўвазе,, I added two text fields. Праз некаторы час, Я буду гуляць са спасылкамі, выявы, пошук, і г.д..

6. Змяніць NewForm.aspx старонку вэб-часткі і дадаць вэб-частка рэдактара змесціва

Гэта крыху чорнай магіі иш , in that it’s a new concept to me. I first learned about this from Поль Гренье, SharePoint JQuery Superstar, на яго сайце праекту CodePlex: http://spff.codeplex.com/.

Выканайце наступныя крокі, каб дадаць CEWP на тую ж старонку, якая паказвае NewForm.aspx для любога карыстацкага спісу:

  1. Доступ да карыстацкага спісу і націсніце кнопку Стварыць.
  2. Дадайце наступныя радкі ў URL: Праглядах = Агульныя&ToolPaneView = 2

Гэта дасць магчымасць ператварыць ваш сумны ванілі ўводу дадзеных з формаў нешта накшталт гэтага:

image

Для гэтага:

image

Дадайце вэб-частка рэдактара змесціва на старонку.

7. Напісаць свой першы код JQuery

Адчыніце, што CEWP ва ўяўленні кода і дадайце наступны:

image

Вось рэальны код, калі вы хочаце скапіяваць / ўставіць:

<сцэнар
    "text/javascript"
    SRC ="../../jQuery%20Library/jquery-1.3.2.min.js">
</сцэнар>

<Сцэнар тыпу ="text/javascript">
  $(функцыя() {

    $('# ResultsID ").HTML("Ёсць" + $("А").памер() + "Пазнакі Пазнакі на гэтай старонцы.);

  });
</сцэнар>

Вынік:
<DIV ID ="ResultsID"></спраў>
/вынік

Адзначым, што першыя <сцэнар> tag is referencing the actual jQuery library. Presumably, гэтыя рэчы змяняюцца з цягам часу, так што вы хочаце, каб пераканацца,) выкарыстоўваць правільнае імя і б) накіраваць яго на правільны бібліятэцы дакументаў SharePoint.

Грэцца ў промнях славы

Калі вы зрабілі гэта правільна, Вы ўбачыце вынік, падобны на наступны:

image

Заключэнне

Гэта не адзіны спосаб, каб пачаць працу, але гэта хутка, easy and isolated from your existing SharePoint environment.

</канец>

Падпісацца на мой блог.

Выконвайце за мной на Twitter у http://www.twitter.com/pagalvin

Technorati Тэгі: ,

Пазнакі del.icio.us: ,

Хутка і лёгка: Выкарыстоўваць JQuery ўсталяваць значэнне тэкставага поля на форме SharePoint

Я пачаў гуляць з JQuery yesterday. I’ve been wanting to do this for a long time, з тых часоў як Поль Гренье пачаў пісаць яго серыя аб JQuery для канчатковых карыстачоў на шаноўны 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.

У гэтым выпадку, Я стварыў карыстацкі спіс, "новая" форма выглядае, як паказана:

image

Гэта новая форма для карыстацкага спісу слупка па змаўчанні назва і двух слупкоў спісу (Ня слупкоў сайта; Я не думаю, што гэта павінна мець нейкае значэнне).

Мэта складаецца ў тым, каб прысвоіць адвольнае значэнне ў полі, "DefaultMeFieldNoSpaces" (Вы можаце сказаць, я трусоват з "без прабелаў" рэч адбываецца, але я ажывіць яго ў канцы гэтага артыкула).

Гэта трохі JQuery працуе для мяне:

<Сцэнар тыпу ="text/javascript">

  $(функцыя() {

    $("Уваход[Назва = DefaultMeFieldNoSpaces]").Attr(
        {значэнне: "Вы знаходзіцеся ў лабірынце звілістых праходаў, усе аднолькавыя.});

  });

</сцэнар>

Наколькі я разумею, гэта крыху JQuery кажуць, “find me any input tag whose title = DefaultMeFieldNoSpaces. Затым, ўсталяваць ўсе іх значэння знакамітую фразу з старой кампутарнай гульні ".

Так як там будзе толькі адно поле ў форме з назвай роўным "DefaultMeFieldNoSpaces" Мы ўпэўнены ў прысваенні значэння гэтай галіне, і ніякай іншай.

А як наконт поля, імя якога змяшчае прабелы? It’s nearly the same:

<Сцэнар тыпу ="text/javascript">

  $(функцыя() {
     $("Уваход[Назва = Прызначыць поля з прасторай]").Attr(
        {значэнне: "Вы знаходзіцеся ў лабірынце звілістых праходаў, усе аднолькавыя.});

  });

</сцэнар>

Я думаю, што гэта даволі бяспечны падыход, 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, Гэта свайго роду брудны:

<ўваход
імя="ctl00$m$g_bdb23c2c_fde7_495f_8676_69714a308d8e$ctl00$ctl04$ctl02$ctl00$ctl00$ctl04$ctl00$ctl00$TextField"
тып="text"
MaxLength="255"
ID="ctl00_m_g_bdb23c2c_fde7_495f_8676_69714a308d8e_ctl00_ctl04_ctl02_ctl00_ctl00_ctl04_ctl00_ctl00_TextField"
назва="DefaultMeFieldNoSpaces"
клас="ms-long"
/>

«Тытул» выступае ў якасці вядомай і, спадзяюся, унікальны атрыбут, каб дапамагчы нам вызначыць канкрэтныя калонкі, якія мы хочам перадаць нашы адвольнае значэнне.

This is a foundational concept. Setting a field in an arbitrary way like this isn’t going to win any awards. Аднак, калі мы хочам зрабіць больш цікавае узроўні формы (які мы ўсе заўсёды хочуць зрабіць, вядома, адразу пасля завяршэння мы мыцця посуду), як змяніць значэнне "поля б» аўтаматычна ў залежнасці ад значэння "поле", мы (Я) трэба даведацца гэтыя рэчы.

Я думаю, што наш самы лепшы шанец атрымаць рэальную карысную значэнне тут па назве, at least for text fields. There may be a better, more reliable approach. If I find it, Я буду абнаўляць гэты пост. If you know a better way, калі ласка, пакіньце каментар.</канец>

</канец>

Падпісацца на мой блог.

Выконвайце за мной на Twitter у http://www.twitter.com/pagalvin

Technorati Тэгі: ,