კატეგორია არქივი: jQuery და SharePoint

უსაზღვროდ შემაშფოთებელი პრობლემა შედარებითი მისამართებს SharePoint სწრაფი გაშვების

I wanted to add a link to the quick launch navigation the other day and SharePoint told me:

image

Pure text version of that is:

Ensure that the URL is valid and begins with either a valid character (a number sign (#) or forward slash (/)) or a valid supported protocol (მაგალითად, ‘http://', ‘https://', ‘file://', ‘ftp://', ‘mailto:', ‘news:').

“Blech and pox!” I said.

A workaround to this is to use JavaScript to find a known link in the quick launch and override its behavior.

To test this, add a new link to your test site thusly:

image

I used jQuery. To solve it, get some JavaScript and jQuery onto the page using your favorite technique and with a line of code like this:

 

$(დოკუმენტი).მზად( ფუნქცია () {

    $("a:contains('Test URL replacement')").დააწკაპუნეთ(ფუნქცია () { გაფრთხილება("changed click behavior!"); დაბრუნდნენ ყალბი;});

});

And Bob’s your uncle.

The jQuery selector finds every <a> tag that has “Test URL replacement” in its name. You may want to find-tune that depending on your link and such.

The .click(ფუნქცია() overrides whatever SharePoint would have done when the user clicked. Make sure you “return false” or else it will do your stuff and then try to the href thing too, which is almost certainly not your goal.

This was done and test in a SharePoint online environment but should work well in 2010 and earlier too.

</ბოლო>

undefinedგამოწერა ჩემი დღიური.

გამომყვეს Twitter-ზე http://www.twitter.com/pagalvin

სწრაფი და მარტივი: მოგვარება "არასწორი URL პარამეტრებით” პრობლემა UpdateListItems in lists.asmx

When working with UpdateListItems via lists.asmx, it’s easy to generate the error:

Invalid URL Parameter.

The URL provided contains an invalid Command or Value. Please check the URL again.

You can get this error when you forget to include ID in the the list of fields to update.  ეს, like a lot of these SP web services, is a bit counterintuitive since you need to include the ID in the ID attribute of the <Method> element.  And you’re not updated ID and probably never want to in the first place.

This SOAP envelope works:

<soapenv:კონვერტი xmlns:soapenv ='http://schemas.xmlsoap.org/soap/envelope/'>
  <soapenv:Body>                      
    <UpdateListItems xmlns='http://schemas.microsoft.com/sharepoint/soap/'>                     
      <ფოთლოვანი>{C712E2EA-54E1-47AD-9D99-1848C7773E2F}</ფოთლოვანი>                     
        <updates>                     
         <Batch OnError="Continue">
          <Method ID="1" Cmd="Update">
            <Field Name="CooperativeLock">locked!</სფერო>
            <Field Name="ID">1</სფერო>
          </Method>
        </Batch>                     
        </updates>                
      </UpdateListItems>             
  </soapenv:Body>         
</soapenv:კონვერტი>

If you strip out the ID field reference then you’ll get the annoying “Invalid URL parameter” message.

</ბოლო>

undefinedგამოწერა ჩემი დღიური.

გამომყვეს Twitter-ზე http://www.twitter.com/pagalvin

 

ღარიბი ადამიანის ქეშირების in JavaScript

[TL;DR version: use cookies to store the results of async calls; render the results of past async calls immediately and then validate them after page-load.]

I’ve been working on SharePoint intranet site for a client that features, სხვა საკითხებთან, a stylized secondary navigation whose menu options are managed via a regular old custom list.  The idea is that the client gets to control “their” site’s menu without affecting or being affected by the global navigation put out by IT.

(there is something incredibly subversive about adding a CEWP that points to an HTML file that loads some CSS and JS to fundamentally alter almost everything about a site’s behavior… but that’s for another post)

The code for this pretty simple:

The sore spot here is that every time anyone hits one of the site’s pages, that user’s web browser is reaching out to get items from the list.  Once dev is complete and testing has proven things to be stable and complete, this call is unnecessary more than 99% of the time since the menu rarely changes.  It also has a weird UI affect which is common in this brave new world of hyper-ajaxy web sites – the page renders and only then does the menu render.  It’s jittery and distracting in my view.  And jittery. ასე რომ,, caching. 

I modified the logic thusly:

  • Look for a cookie in the browser that contains the menu as I last read it
    • If found, render it immediately.  Don’t wait for the page to finish loading.  (You need to make sure your HTML is strategically placed here, but it’s not hard to do).
  • Wait for the page to finish loading and make an async call to load up menu items from a list using REST or lists.asmx or whatever
  • Compare what I got against the cookie
    • If it matches, STOP
    • Otherwise, using jQuery, dynamically populate a bunch if <li>’s in a <ul>
  • Use CSS to do all the formatting
  • Profit!

Some of you are going to say, “hey! there’s no real caching going on here since you’re reading the menu anyway every single time."  And you’re right – I’m not giving the server any kind of break.  But because the call is async and happens after the page’s initial HTML payload fully renders, it “feels” more responsive to the user.  The menu renders pretty much as the page draws.  If the menu happens to the change, the user is subjected to a jittery re-draw of the menu, but only that one time.

There are some ways to make this caching more effective and help out the server at the same time:

  • Put in a rule that the “cookie cache” is valid for a minimum of 24 hours or some other timeframe. As long as there is no expired cookie, use the cookie’s menu snapshot and never hit the server.

Well … that’s all that come to mind right now :). 

If anyone has any clever ideas here I’d love to know them.

And lastly – this technique can be used for other stuff.  This client’s page has a number of data-driven things on various pages, many of them changing relatively rarely (like once a week or once a month).  If you target specific areas of functionality, you can give a more responsive UI by pulling content from the local cookie store and rendering immediately.  It feels faster to the user even if you’re not saving the server any cycles.  თქვენ შეიძლება save the server cycles by deciding on some conditions and triggers to invalidate this local cookie cache.  That’s all situational and artsy stuff and really the most fun :). 

</ბოლო>

undefinedგამოწერა ჩემი დღიური.

გამომყვეს Twitter-ზე http://www.twitter.com/pagalvin

XSLT და jQuery ნიმუშები

მე არ აკეთებს ბევრი of XSLT და jQuery და ეგონა, მინდა იზიარებენ რამდენიმე snippets, რომ სხვები შეიძლება სასარგებლო მომავალში.

მაგალითი 1: გადასცემს მარტივი JavaScript / jQuery წელს XSLT:

<XSL:template match="something" xml:space="preserve">

  <!– ცარიელი out შეკითხვის მეგობრული ფილტრებით ფარული სფეროში –>
  <script type="text/javascript">
    $(დოკუმენტი).მზად(ფუნქცია(){
      $("#QueryFriendlyFilters").val("empty");
    });
  </დამწერლობის>

</XSL:template>

ცოტა emits რამდენიმე JavaScript რომ ელოდება გვერდი დასრულება დატვირთვა (გამო $(დოკუმენტი).მზად(...)) შემდეგ კი ადგენს ღირებულება ფარული ველში QueryFriendlyFilters რომ ლიტერატურული ღირებულება "ცარიელი".

მაგალითი 2: გამოყენება <XSL:თუ> რათა შეამოწმოს "მეტია",  "ნაკლები", და ა.შ..

<XSL:template match="something" xml:space="preserve">

  <div id="fdcAllFilters">
 
    <XSL:if test="@Count>0">
      <span class="fdcFilterLabel">აქტუალური ფილტრებით:</span>
    </XSL:თუ>

    <!– მეტი პერსონალი აქ ხდება. –>

</XSL:template>

ზემოთ snippet ამოწმებს თუ ატრიბუტებს, სახელწოდებით "იმედი" და "რაღაც" ელემენტი მეტია ნულოვანი.  XML უკან ეს იქნება რაღაც:"

<რაღაც Count = "5" />

მაგალითი 3: Iterate მთელი ელემენტები, interspersing jQuery ზარები.

<!– Iterate მთელი ფილტრებით და არიან სწორი  ბმულები. –>
<XSL:for-each select="UserFilter">

  <a class="FilterHref" href="javascript:mySubmitPage(‘RemoveUserFilter’,'{@ ID}')">[X]</a>

  <span class="fdcFilterLabel"><XSL:value-of select="@FilterValue"/></span>

  <script type="text/javascript">

    $(დოკუმენტი).მზად(ფუნქცია(){
        <XSL:ტექსტი><![CDATA[$("#QueryFriendlyFilters").val( ($("#QueryFriendlyFilters").val() + " ]]></XSL:ტექსტი>\"<XSL:value-of select="@FilterValue"/>\"<XSL:ტექსტი><![CDATA["));]]></XSL:ტექსტი>
    });

  </დამწერლობის>

</XSL:for-თითოეული>

ზემოთ snippet არის ყველაზე რთული და შეიძლება იყოს ადვილი გზა ამის გაკეთება.

XML უკან გამოიყურება დაახლოებით ასე:

<UserFilter ID = "123" FilterValue = "xyzzy" />

ეს snippet არის iterating მეშვეობით <მომხმარებელი ფილტრაციის> კვანძების. 

ეს პირველი emits წამყვანმა tag, რომ როდესაც დაწკაპავთ აღვიძებს JavaScript ფუნქცია, რომელიც უკვე გვერდზე, "MySubmitPage" და გადის ღირებულება ატრიბუტი ჩართულია <მომხმარებელი ფილტრაციის> კვანძის სახელწოდებით "ID". 

ეს მაშინ emits ზოგიერთი jQuery, რომ ელოდება გვერდზე ჩატვირთვა.  სწორედ jQuery განახლებები ფარული სფეროში სახელწოდებით "QueryFriendlyFilters" დამატებით ღირებულებას FilterValue ატრიბუტი.  შენიშვნა ყველა გიჟები <XSL:ტექსტი> და <![CDATA[ ... ]]> პერსონალის.

ეს არის ის, იმედი მაქვს, ეს ეხმარება!

</ბოლო>

გამოწერა ჩემი დღიური.

გამომყვეს Twitter-ზე http://www.twitter.com/pagalvin

Lists.asmx, GetListItems და დასტების

მე აკეთებდა ზოგიერთი კვლევის ვინმე დღეს დაახლოებით list.asmx ვებ სერვისი, როგორც ნაწილი SharePoint 2010 (და უფრო ადრე).  ის იყო შეუძლია მიიღოს სია ნივთები ძირეული საქაღალდე (მათ შორის სახელების საქვეუწყებო ფოლდერები), მაგრამ ვერ მოახერხა ნივთები ქვეპუნქტით საქაღალდეები.  მე რაღაც ეძებს გარშემო internets და ეს გასაკვირი საერთო კითხვაზე.  თუმცა, მე ვერ კარგი პასუხი მარტივი კითხვა, "თუ ვიცი, ფოლდერში, როგორ მივიღებ ნივთები ფოლდერი?"  მართალი გითხრათ, მე არ ცდილობენ ყველა რომ მძიმე წლიდან მე მინდოდა ტექსტური ამ ერთი ჩემს ხნით Smile.

იმისათვის ეს ყველაფერი, მე შეიქმნა საიტი სახელწოდებით "Blogging სცენარი" და საბაჟო სიაში დასახელებული "მორგებული სია Sub ტიპი".  მე მაშინ შექმნილი საქაღალდეები დაასახელა:

  • წელი 2005
  • წელი 2006
  • წელი 2007

მე დასძინა რამდენიმე საკითხი უნდა დირექტორია "2006 წელი".  ეს არის რას ჰგავს:

image

ჩემი მეგობარი არ არის წერა C # კოდი არამედ გამოყენებით ჯავის, ასე საპონი კონვერტში იყო ის, რაც მან ნამდვილად საჭიროა.  იმისათვის რომ, რომ, დავწერე ცოტა jQuery და შემდეგ გამოიყენება fiddler მიიღოს ფაქტობრივი HTTP საუბარი.

აი შესაბამისი jQuery (მე გადაწერა კოდი ქვემოთ ქვემოთ, თუ გინდათ ასლი / პასტა):

image

ისინი უპირველეს უნდა შეიცავდეს ორივე <queryOptions> და <QueryOptions> კვანძის.  მეორე გასაღები იმაში მდგომარეობს, რომ <Folder> კვანძის არის URL, კლიენტს ხელი მიუწვდება.

ამისთვის შეიძლება იყოს სხვა გზები მიიღოს ამ, მაგრამ ეს კარგად მუშაობდა ჩემთვის, როდესაც გამოყენებით jQuery.

აქ არის საპონი კონვერტში ზემოთ:

<soapenv:კონვერტი xmlns:soapenv =’http://schemas.xmlsoap.org / საპნის / კონვერტში /’>                
  <soapenv:Body>
    <GetListItems xmlns =’
http://schemas.microsoft.com / SharePoint / საპნის /’>
      <ფოთლოვანი>საბაჟო სიაში Sub საქაღალდეები</ფოთლოვანი>
      <viewFields>  
        <ViewFields>
          <FieldRef სახელი = 'სათაური’ />
          <FieldRef სახელი = 'EncodedAbsUrl’ />
        </ViewFields>
      </viewFields>
      <queryOptions>
        <QueryOptions>
          <Folder>
http://demoserver1/Blogging სცენარი / სიებში / საბაჟო სიაში Sub საქაღალდეები / 2006 წელი</Folder>
        </QueryOptions>
      </queryOptions>
   
</GetListItems>
  </soapenv:Body>
</soapenv:კონვერტი>

უამრავი მაგალითი და დისკუსია გარშემო გამიყვანა, რომ ყველა მე უნდა იყო <QueryOptions> და დააკონკრეტა საქაღალდე სახელი.  ჩემთვის, მე უნდა ორივე გადატანა შიგნით <queryOptions> ისევე როგორც დააკონკრეტა მთლიანად კვალიფიციური URL for <Folder> კვანძის.

აი jQuery AJAX კონფიგურაცია:

$(დოკუმენტი).მზად(ფუნქცია() {
       იყო soapEnv =
           "<soapenv:კონვერტი xmlns:soapenv =’http://schemas.xmlsoap.org / საპნის / კონვერტში /’> \
               <soapenv:Body> \
                    <GetListItems xmlns =’http://schemas.microsoft.com / SharePoint / საპნის /’> \
                       <ფოთლოვანი>საბაჟო სიაში Sub საქაღალდეები</ფოთლოვანი> \
                       <viewFields> \
                           <ViewFields> \
                              <FieldRef სახელი = 'სათაური’ /> \
                              <FieldRef სახელი = 'EncodedAbsUrl’ /> \
                          </ViewFields> \
                       </viewFields> \
                       <queryOptions> \
                         <QueryOptions> \
                           <Folder>http://demoserver1/Blogging სცენარი / სიებში / საბაჟო სიაში Sub საქაღალდეები / 2006 წელი</Folder> \
                         </QueryOptions> \
                       </queryOptions> \
                   </GetListItems> \
               </soapenv:Body> \
           </soapenv:კონვერტი>";

</ბოლო>

გამოწერა ჩემი დღიური.

გამომყვეს Twitter-ზე http://www.twitter.com/pagalvin

Lists.asmx, GetList და "მნიშვნელობა არ შეიძლება იყოს null”

აღმოვაჩინე, რომ GetList() მეთოდი lists.asmx ვებ სერვისი უნდა ეწოდოს ძალიან ფრთხილად ან ეს მიდრეკილება იმისათვის, რომ ფარული "ღირებულების არ შეიძლება იყოს null" გამონაკლისი (და ეს ვთქვათ, თქვენ შეგიძლიათ მიიღოთ წარსული უარესი generic შეცდომა, “Exception of type ‘Microsoft.SharePoint.SoapServer.SoapServerException’ ესროლეს ".)  კერძოდ, მივხვდი, რომ ვერ უზრუნველყოფს რაიმე სახის პრეფიქსი on GetList მეთოდით.  შემდეგ jQuery snippet ასახავს წერტილი:

image

თუ თქვენ, რომ, ვებ სერვისი ეხმაურება და "ღირებულების არ შეიძლება იყოს null" როგორც პოსტი ამ fiddler-უზრუნველყოფილი HTTP სტენოგრამა:

<?xml version="1.0" encoding="utf-8"?>
  <საპნის:კონვერტი
     xmlns:საპნის ="
http://schemas.xmlsoap.org / საპნის / კონვერტში /"    
     xmlns:xsi = "
http://www.w3.org/2001/XMLSchema-instance"
     xmlns:xsd ="
http://www.w3.org/2001/XMLSchema">

  <საპნის:Body>
    <საპნის:ბრალია>
      <faultcode>საპნის:სერვერი</faultcode>
      <faultstring>
        Exception of type ‘Microsoft.SharePoint.SoapServer.SoapServerException’ ესროლეს.
      </faultstring>
      <დეტალურად>
        <errorstring xmlns ="
http://schemas.microsoft.com / SharePoint / საპნის /">
ღირებულება არ შეიძლება იყოს null.
        </errorstring>
      </დეტალურად>
    </საპნის:ბრალია>
  </საპნის:Body>
</საპნის:კონვერტი>

რა თქმა უნდა, თქვენ ალბათ არ დავამატებთ, რომ "s0" პრეფიქსი საკუთარ, მაგრამ ზოგიერთი ინსტრუმენტი არის მიდრეკილება რომ ამის გაკეთება (ისევე როგორც Eclipse).

ეს მით უფრო გაუგებარია / სამწუხარო იმიტომ, რომ სხვა მეთოდები მოითმენს პრეფიქსი.  მაგალითად, the GetListCollection მეთოდი არ იბადება, თუ მას უკვე prefixed, თუნდაც სისულელე ინდექსები როგორიცაა "xyzzy":

image

ეს "ღირებულება არ შეიძლება იყოს null", როგორც ჩანს საკმაოდ საერთო lists.asmx ისე იმედია ეს ხელს შეუწყობს ვინმე out მომავალში.

</ბოლო>

გამოწერა ჩემი დღიური.

გამომყვეს Twitter-ზე http://www.twitter.com/pagalvin

უსასრულოდ Nesting <div> Tags და jQuery

ეს ჩანს, ასეთი oddball თემას, მე არ ვარ დარწმუნებული, რომ ეს ნამდვილად ღირს ბლოგინგის შესახებ, მაგრამ ეს არ შეუწყვეტია მე წინაშე, ასე რომ აქ ჩვენ Smile

მე შემუშავების პროექტზე, სადაც მე უბიძგებენ გარკვეული მონაცემების ძებნის, შეფუთვის იგი დაყოფილია XML გაგზავნა და შემდეგ რომ XML საბოლოოდ გადაკეთდა HTML მეშვეობით XSLT.  აქ არის ბევრი jQuery ჩართული, ერთი ცოტა რომელიც ახორციელებს რამდენიმე tabbing ფუნქცია.  როდესაც თქვენ დააჭირეთ tab (ნამდვილად, a <div>), jQuery აღვიძებს. დამალვა() და. შოუ() სხვადასხვა divs (საწყის გვერდზე დატვირთვის იწერს ყველა შინაარსი ასე რომ არ არსებობს postbacks ამ შემთხვევაში).

რამოდენიმე საათის წინ, tab გადართვის ლოგიკა დაიწყო მოიქცევა erratically და ეს არ აჩვენებს ერთი ჩემი ჩანართი.  მე საბოლოოდ დააფიქსირა, მას იმ ფაქტს, რომ ინტერნეტ explorer (სულ მცირე) ეგონა, რომ <div> tags წყობილი შორს, რამდენადაც უფრო ღრმა, ვიდრე intended.The დეველოპერი პანელი იმას აჩვენებენ:

-<div id = "Tab1Content">
  -<div>
    -<div>
      -<div id = "Tab2Content">
        -<div>
           ..............................
                   </div>  <-საბოლოოდ აჩვენებს დაიხურა ყველა გზა ქვემოთ აქ!

ასე რომ,, თუ წავიდოდი $("# Tab1Content").დამალვა(), მინდა ასევე მალავს Tab2 და ვერც კი ნახოთ Tab2 თუ არ ასევე აჩვენებს Tab1.  მე გადაწერა და გაკრული კოდი დაყოფილია ვიზუალური სტუდია და ეს აჩვენა ყველა div-ს უგულებელყოფა up ლამაზად, ისევე, როგორც ისინი უნდა აკეთებს, ეძებს როგორც ამ:

-<div id = "Tab1Content">
  +<div>
  +<div>
-<div id = "Tab2Content">
  +<div>
  +<div>

მე სცემეს ჩემი უფროსი წინააღმდეგ კედელზე ხნით და შენიშნა, რომ ფაქტობრივი HTML კოდი იყო მომტანი ბევრი ცარიელი <div> tags, მოსწონს:

<სხეულის>

  <div id = "Tab1Content">

    <div id = "row1" />
    <div id = "row2" />

  </div>

  <div id = "Tab2Content">

    <div id = "row1" />
    <div id = "row2" />

  </div>

</სხეულის>

(აღნიშნული waaaaaaaaaaaay oversimplified.  ცარიელი div tags აბსოლუტურად ძალაშია. ზოგიერთი ჩემი <div> tags იყო სავსე შინაარსი, მაგრამ კიდევ ბევრი რამ არ იყო.  ჩამოვედი რეალიზაციის, რომ ჩემი <XSL:for-თითოეული> დირექტივა ასხივებენ მოკლე ფორმა div tags როდესაც XSL:for-თითოეული არ "აღმოაჩინა მონაცემები.  მე იძულებული HTML კომენტარის შევიდა გამომავალი, როგორც ნაჩვენებია:

image

 

მას შემდეგ, რაც გავაკეთე, რომ, ყველა div ის გაფორმებულია ლამაზად და ჩემი tab ჩართვის მუშაობა დაიწყო.

როგორც ყოველთვის, ვიმედოვნებ, რომ ეს ეხმარება ვინმე pinch.

</ბოლო>

გამოწერა ჩემი დღიური.

გამომყვეს Twitter-ზე http://www.twitter.com/pagalvin

ჯერ jQuery–ზომის შეცვლა გამოსახულების მაგალითი

მე მემკვიდრეობით ვებ ნაწილი კლიენტების წლის გამყიდველი და მას აქვს სურათის ზომის პრობლემა.  ფოტოებს თან უნდა 60×50 მაგრამ გარკვეული უცნაური მიზეზი, ორიგინალური გამყიდველი აიძულა მათ 42×42, ასე რომ ისინი squashed:

 

კარგი გამოსახულება

ცუდი გამოსახულება

აი markup (გარკვეულწილად გამარტივდა):

<მაგიდა კლასის = 'გახანგრძლივებული მსოფლმხედველობის ">
  <thead>
    <tr>
      <ე  ტელეკომპანია '100′>3 სამშაბათი</ე>
    </tr>
  </thead>

  <tbody>
    <tr კლასის = 'პროგნოზს ">
      <td width = '100′>
        <ul>
          <li class = 'მაღალი'>მაღალი: 72&deg;F</li>
          <li class = "დაბალი">დაბალი: 44&deg;F</li>
          <li class = "მდგომარეობაშია">მზიანი
            <img src =’
http://deskwx.weatherbug.com/images/Forecast/icons/localized/60×50/en/trans/cond007.png’ ტელეკომპანია '42’ სიმაღლე = '42’ alt =” />
          </li>
        </ul>
      </td>
    </tr>

  </tbody>

</მაგიდა>

თქვენ აღვნიშნო, რომ მიუხედავად იმისა, გზა იმიჯი თავად გვიჩვენებს შესაბამისი განზომილების (60×50) ორიგინალური გამყიდველი აიძულა იგი 42×42.  რატომ?  Crazy.

ყოველ შემთხვევაში, მინდოდა ეს სწრაფია და ადვილი გამოსავალი ამ საკითხს და მე აღმოჩნდა jQuery.  შეასრულა იყო იქნებიან ყველა შესაბამისი <img> tags.  მე არ მინდა, რომ Muck შესახებ ნებისმიერ სხვა img tags (რომელიც არსებობს მრავალი).  ეს ცოტა jQuery გააკეთა შეასრულა:

<script type="text/javascript" src ="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></დამწერლობის>

<script type="text/javascript">
     $(დოკუმენტი).მზად(ფუნქცია () {

         $(‘li.condition > img ').ყოველ(ფუნქცია (ინდექსი, პუნქტის)
           
{
             $(პუნქტის).css("width", "60"); 
             $(პუნქტის).css("height", "50");
            });
     }); // on დოკუმენტი დატვირთვა
</დამწერლობის>

ცოტა კოდი პოულობს კრებული <li> tags რომლის კლასი არის "მდგომარეობაში" და <img> ბავშვები.  ეს მაშინ iterates მეშვეობით ყველა რომ.  მუშაობდა როგორც ხიბლი.

მე შეიძლება ალბათ გამარტივებაში ეს, მაგრამ მე არასდროს ყოფილა ასეთი UNIX ბიჭი რომ გადაწყდეს π to 18 ციფრები სიზუსტით გამოყენებით SED და awk და მე არ ვარ ასეთი სახის თუ jQuery ბიჭი ან Smile.

</ბოლო>

გამოწერა ჩემი დღიური.

გამომყვეს Twitter-ზე http://www.twitter.com/pagalvin

განახორციელოს გლობალური Pop-up შეტყობინება სისტემა

I wrote up an article for www.sharepoint.briefing.com entitled “განახორციელოს გლობალური Pop-up შეტყობინება სისტემა."  ეს ფუნქცია განხორციელდა საზოგადოებრივი კოლეჯი კომუნიკაცია სკოლა closings თოვლის გამო და სხვ. 

იგი იყენებს საბაჟო სია, იმ ყუთში SharePoint ვებ მომსახურება და ზოგიერთი jQuery უნდა გააკეთოს სამუშაო.

აი teaser:

image

დაწვრილებით მთელი რამ აქ: http://www.sharepointbriefing.com/features/article.php/3918471/Implement-a-Global-Pop-up-Notification-System.htm

</ბოლო>

გამოწერა ჩემი დღიური.

გამომყვეს Twitter-ზე http://www.twitter.com/pagalvin

აღებას თქვენი OK და უარი Buttons

I wrote ამ მუხლის a while back, მაგრამ ჰგავს მე არ უკავშირებენ, რომ იგი ჩემი დღიური დროს, ასე რომ აქ გადის:

image

ეს სტატია აღწერს, თუ როგორ უნდა აიძულოს newform.aspx გადამისამართება ერთ გვერდზე, როდესაც მომხმარებელი იმოქმედებს OK და სხვადასხვა გვერდზე, როდესაც იგი იმოქმედებს გააუქმოს.

</ბოლო>

გამოწერა ჩემი დღიური.

გამომყვეს Twitter-ზე http://www.twitter.com/pagalvin