Pafund Folezojnë <div> Tags dhe jQuery

Kjo duket si një temë e tillë oddball, Unë nuk jam i sigurt se kjo është me të vërtetë me vlerë rreth Blogging, por që kurrë nuk është ndalur mua para, kështu që këtu ne do të shkojmë buzëqeshje

Unë jam duke punuar në një projekt ku unë jam tërhequr disa të dhëna nga një kërkim, paketimin atë deri në një mesazh XML dhe pastaj se XML është transformuar përfundimisht në HTML me anë XSLT.  Nuk është një shumë e jQuery përfshirë, një grimë e cila zbaton disa funksionalitetin tastit tab.  Kur ju klikoni mbi një tab (vërtet, një <div>), jQuery invokes. fshehin() dhe. show() on divs ndryshme (ngarkesa fillestare faqe shkarkon të gjithë përmbajtjen kështu që nuk ka postbacks në këtë rast).

Një bandë e orë më parë, logjika tab kalimi filluar të sillen erratically dhe ajo nuk do të tregojë një prej tabs mi.  Unë përfundimisht gjurmuar atë poshtë për faktin se internet explorer (të paktën) mendonin se <div> tags mbivendosur tani, shumë më të thellë se Developer Toolbar intended.The do të tregojë:

-<div id = "Tab1Content">
  -<div>
    -<div>
      -<div id = "Tab2Content">
        -<div>
           ..............................
                   </div>  <-Më në fund duke treguar ajo ishte e mbyllur të gjithë rrugën poshtë këtu!

Kështu, në qoftë se kam bërë një $("# Tab1Content").fsheh(), Unë do të fsheh Tab2 dhe unë kurrë nuk mund të tregojë Tab2 në qoftë se unë nuk e tregojnë gjithashtu Tab1.  I kopjuar dhe ngjit kodin e deri në studio vizuale dhe ajo i tregoi të gjitha rreshtim DIV-së deri bukur, ashtu si ata ishin menduar të jetë bërë, në kërkim si kjo:

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

I rrahur kokën time kundër murit për një kohë dhe të vënë re se në kodin aktual HTML është gjeneruar një shumë të zbrazët <div> tags, si:

<trup>

  <div id = "Tab1Content">

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

  </div>

  <div id = "Tab2Content">

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

  </div>

</trup>

(Sipër është waaaaaaaaaaaay thjeshtëzuar.  Tags boshe div janë krejtësisht të vlefshme. Disa nga tim <div> tags ishin plot e përmbajtjes, por shumë më tepër nuk ishin.  Unë kam ardhur në realizimin se im <XSL:për njëri-> Direktivat janë emitting-shkurtra formë tags div kur XSL:për njëri-nuk 'gjejnë ndonjë të dhënave.  I detyruar një koment HTML në dalje, siç tregohet:

image

 

Pasi unë e bëri atë, div të gjitha është rreshtuar bukur dhe switching im tab filluar pune.

Si gjithmonë, Unë shpresoj se kjo ndihmon dikush në një majë.

</fund>

Abonohen në blogun tim.

Atëherë ejani pas meje në Twitter në http://www.twitter.com/pagalvin

Fix shpejtë: "$ I tipi i përmbajtjes emri 'Burimet:ReportServerResources … nuk mund të përmbajë … karaktere të veçanta”

Unë kam qenë duke kaluar disa kohë pastrimin e SharePoint 2010 web site dhe një nga çështjet e pastrimit të bëjë me një korruptuar / instaluar gabimisht Raporto SQL Server Sherbime çështje.  Çështja u ngrit kur një nga kolegët e mi u përpoqën për të shpëtuar një vend si një template dhe pastaj të krijojë të krijuar një faqe të re të bazuar në atë template.  Operacioni Save punuar mirë, por kur ajo u përpoq për të krijuar faqe të reja, SharePoint shfaqet mesazh gabimi:

Gabim

Burimet $ Lloji i përmbajtjes emrin ':ReportServerResources,DataSourceContentTypeName;'Nuk mund të përmbajnë: \ / : * ? " # % < > { } | ~ & , dy periudha të njëpasnjëshme (..), ose karaktere të veçanta të tilla si një skedë.

Këtu është një kapak ekran:

 

image

Unë kisha një vështrim në llojet e përmbajtjes në këtë faqe interneti dhe e gjeti këtë:

image

Këto lloje përmbajtjes janë qartësisht të sëmurë.

Kjo çështje duket se për të ardhur deri në një shumë mbi Internets dhe atje nuk duket të jetë një konsensus i vetëm mbi atë se si për të zgjidhur atë.  Kam gjetur një tabelë dobishëm që konturuar emrat e këqija tipi i përmbajtjes emrave të mira tipi i përmbajtjes ketu: http://social.technet.microsoft.com/Forums/en-ZA/sharepoint2010programming/thread/cb03e866-8184-4943-acfe-cafffa1b8b7a.  Unë manualisht përditësuar ato thusly:

image

(BrightStarr në emër është padyshim fakultative, por ajo nuk mund të dëmtojë buzëqeshje )

Kjo lejohet mua për të krijuar një template të ri dhe nuk e thyejnë asgjë në faqet e tjera, duke përfshirë edhe disa sende Server PerformancePoint se një grup krejtësisht të ndryshme të njerëzve ishin duke punuar.  Unë kam qenë atëherë në gjendje për të krijuar një faqe të re në template.  Sukses!

Unë nuk jam i sigurt se kjo është një 100% zgjidhje, por ajo mori mua dhe të gjithë të përfshirë kaluarën këtij gabimi annoying.  Nëse unë gjej asgjë të re, Unë do të postoj një update.  Nervozizmi im buron nga fakti se këto emra nuk duhet të jetë i gabuar në vendin e parë dhe nga ndreqim emrin e ekranit, Unë nuk jam duke prekur emrin e brendshëm. 

</fund>

Abonohen në blogun tim.

Atëherë ejani pas meje në Twitter në http://www.twitter.com/pagalvin

Një Shkak për "krijuesi i këtij defekti nuk përcaktoi një arsye.”

Unë kam qenë duke bërë një punë shumë e me kerkimin SharePoint kohët e fundit dhe në veçanti klasa KeywordQuery, pronat dhe metodat.

Nëse ju doni rezultati vendosur të kthehen rezultatet më lart dhe përtej të dyshuarit e zakonshme (shikoni këtu), ju shtoni atë në mbledhjen SelectedProperties, si në:

myKeywordQuery.SelectProperties.Add("xyzzy");

Many thanks dhe një tip i kapelë për të Corey Roth dhe ky post jashtëzakonisht e dobishme blog (http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2008/02/19/how-to-use-the-moss-enterprise-search-keywordquery-class.aspx)

Në rastin tim, "Xyzzy" nuk është në fakt një pronë menaxhuar.  Kur kam shtuar atë për SelectedProperties gjithsesi, SharePoint hodhi një nga përjashtimet e mia të preferuar ndonjëherë runtime:

"Krijuesi i këtij defekti nuk specifikon një arsye."

Unë veçanërisht pëlqen të kryeqytetit "R" Arsyes.  Kjo për mua tingëllon si ekuivalente. Neto i "Unë nuk kam asnjë gojën, dhe unë duhet të bërtas."

</fund>

Abonohen në blogun tim.

Atëherë ejani pas meje në Twitter në http://www.twitter.com/pagalvin

Referenca Handy: Rezultatet Default nga KeywordQuery Kërko

Kur ju kërkoj Execute() metodë në një KeywordQuery, ju mund të krijoni një ResultTable bazuar në ResultType.RelevantResults.  Ky copëza kodi ilustron çfarë dua të them:

ResultsTableCollection ResultTableCollection = myKeywordQuery.Execute();

ResultTable searchResultsTable = resultsTableCollection[ResultType.RelevantResults];

Tabela rezulton do të ketë kolona e mëposhtme të informacionit: 

WorkId
Rank
Titull
Autor
Madhësi
Rrugë
Përshkrim
Shkruaj
SITENAME
CollapsingStatus
HitHighlightedSummary
HitHighlightedProperties
Contentclass
IsDocument
PictureThumbnailURL
ServerRedirectedURL

Unë rrjedh nga një këtë listë SharePoint 2010 mjedis, Enterprise Edition.  Shpresojmë se kjo do të jetë i dobishëm për dikë në të ardhmen.

</fund>

Abonohen në blogun tim.

Atëherë ejani pas meje në Twitter në http://www.twitter.com/pagalvin

Një arsye për: Msgstr "Dështova në nxjerrjen e file taksi në zgjidhjen”

Duke punuar në një projekt vizual studio web sot pjesë, Unë bëra një i mitur ri org-e disa dosjeve për të vënë në dosje _layouts si pjesë e procesit të vendosjes. Në mënyrë të veçantë, Unë riemëruar një skedar. Js nga "TypeAhead.js" për "TypeAhead(i vjetër).js "  Kam planifikuar për të hequr atë sa më shpejt të jetë pasuesja e saj "TypeAhead.js" provon saktë.  Ajo dukej si kjo:

image

Kjo shkaktoi menjëherë një problem me vizual studio kur unë u përpoq për të vendosur projektin:

Error occurred in deployment step ‘Add Solution’: Dështoi në nxjerrjen e file taksi në zgjidhjen.

Ajo rezulton se ju nuk duhet të vënë një parantezë në emrat e file.  I larguar parens dhe se zgjidhur problemin.

</fund>

Abonohen në blogun tim.

Atëherë ejani pas meje në Twitter në http://www.twitter.com/pagalvin

JQuery akoma më shumë–Ndrysho një shembull Image

Kam trashëguar një pjesë të internetit nga shitësi vjetër të klientit dhe ajo ka një problem me permasa të imazhit.  Imazhet duhet të jetë 60×50 por për disa arsye të çuditshme, shitësi origjinal detyruar ato në 42×42, kështu që ata shikojnë hequr:

 

Image Mirë

Image Bad

Ja markup (thjeshtuar disi):

<'zgjeruar-opinion' tabelë class =>
  <thead>
    <tr>
      <th  width = '100′>3 E martë</th>
    </tr>
  </thead>

  <tbody>
    <tr class = 'parashikimi'>
      <td width = '100′>
        <st>
          <li class = 'të lartë'>I lartë: 72&ju;F</li>
          <li class = 'të ulët'>Ulët: 44&ju;F</li>
          <'kusht' LI class =>Me diell
            <img src =’
http://deskwx.weatherbug.com/images/Forecast/icons/localized/60×50/en/trans/cond007.png’ width = '42’ height = '42’ alt =” />
          </li>
        </st>
      </td>
    </tr>

  </tbody>

</tryezë>

Ju do të vini re se edhe pse rruga për imazhin e vetë tregon dimensionin e duhur (60×50) shitësi origjinal të detyruar atë në 42×42.  Përse?  I çmendur.

Dosido, Doja një zgjidhje të shpejtë dhe të lehtë për këtë çështje dhe unë u kthye për të jQuery.  Qëllimi ishte për të gjetur të gjitha të përshtatshme <img> tags.  Unë nuk dua të endem me ndonjë tags img tjera (të cilat nuk janë shumë).  Kjo pak e jQuery ka mashtrim:

<script type="text/javascript" src ="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></dorëshkrim>

<script type="text/javascript">
     $(dokument).gati(funksion () {

         $(‘li.condition > 'img).çdo(funksion (indeks, artikull)
           
{
             $(artikull).css("width", "60"); 
             $(artikull).css("height", "50");
            });
     }); // on ngarkesës dokumentin
</dorëshkrim>

Se pak e kodit gjen mbledhjen <li> tags cilëve klasë është "kusht" dhe <img> fëmijët.  Ajo pastaj iterates nëpër të gjithë se.  Ka punuar si një hajmali.

Unë ndoshta mund të modernizojë atë, por unë kurrë nuk ishte një lloj i djalë unix që zgjidhet π në 18 shifrat saktësi duke përdorur sed dhe awk dhe unë nuk jam se lloji qoftë djalë jQuery ose buzëqeshje.

</fund>

Abonohen në blogun tim.

Atëherë ejani pas meje në Twitter në http://www.twitter.com/pagalvin

Analizë gramatikore XML me LINQ

Këtu është një shembull të shpejtë duke përdorur LINQ të kuptoj disa  XML dhe të marrë të ëmbël, atributet e ëmbël aty.

Ja XML unë dua të bëj analizë gramatikore:

<?xml version="1.0" encoding="utf-8" ?>
<DeafultConfigurationSets>
  <PageLayouts>

    <PageLayout name="xyzzy">
      <Tabs>
        <Tab TabOrder="1" TabLabel="x" SharePointContentType="a" AdditionalConstraints="ac1"/>
        <Tab TabOrder="2" TabLabel="y" SharePointContentType="b" AdditionalConstraints="ac2"/>
      </Tabs>
    </PageLayout>

    <PageLayout name="xyzzy2">
      <Tabs>
        <Tab TabOrder="100" TabLabel="x" SharePointContentType="a" AdditionalConstraints="ac1"/>
        <Tab TabOrder="101" TabLabel="y" SharePointContentType="b" AdditionalConstraints="ac2"/>
        <Tab TabOrder="103" TabLabel="z" SharePointContentType="c" AdditionalConstraints="ac3"/>
      </Tabs>
    </PageLayout>

  </PageLayouts>
</DeafultConfigurationSets>

Unë dua të ndërtuar disa tabs në kohën e duhur nga analizimi sipër.  Tabs mia varet nga një layout faqe.  Në qoftë se emri Layout faqen time është "xyzzy2", atëherë unë dua të merrni tabs 100, 101 dhe 103 (skedat në <PageLayout name = "xyzzy2">).

Ja LINQ që e bën atë:

var = allTabs
              nga p në
                  XElement.Parse(theXmlToParse).
                 
Elemente("PageLayouts").
                  Elemente("PageLayout")
              Ku (p.Attribute("name").Value.Equals("xyzzy2"))
              prej meje në p.Elements("Tabs").Elemente("Tab")
              Zgjidh m;

          Results.Text = string.Empty;

          foreach (var aTab në allTabs)
          {
              Results.Text =
                  "Tab Order: " + aTab.Attribute("TabOrder").Vlerë + " |" +
                  "Tab Label: " + aTab.Attribute("TabLabel").Vlerë + " | " +
                  "SharePointContentType: " + aTab.Attribute("SharePointContentType").Vlerë + " | " +
                  "AdditionalConstraints: " + aTab.Attribute("AdditionalConstraints").Vlerë + "\r";
          }

Në sipër, variabël "theXmlToParse" është variabël string, Por ju mund të përdorni LOAD() Metoda në lumë, nëse ju pëlqen.

"Rezultate" është etiketë në formën e internetit dhe ekzekuton Kur kjo pin, kjo duket si ky:

SNAGHTML11cd2e7c

Unë nuk kam punuar se si të lloj rezultatet ende, kërcejnë unë do të iki që për një blog post të ardhmen.

</fund>

Abonohen në blogun tim.

Atëherë ejani pas meje në Twitter në http://www.twitter.com/pagalvin

SharePoint 2010 KeywordQuery dhe Përdoruesit Anonim

Unë aktivizuara qasje anonim në web faqen time për të provuar një pjesë të Web Search unë kam qenë në zhvillim dhe për befasi të madhe, ajo nuk ka mjaft të punojnë.  Qasje Anonim është pretty much gjithmonë një sfidë për mua.

Në këtë rast, kërko fillestar nuk ishte duke vrapuar për disa arsye.  Unë duhet të them se ajo ishte drejtimin, por ai nuk ishte kthyer asnjë rezultat.  Unë jam duke përdorur KeywordQuery për atë ekran fillestar.

Unë bëra një kërkim të shpejtë dhe këtë blog post by "sowmyancs"Erdhi mjaft shpejt: "SharePoint 2010 Kërko: mos treguar ndonjë rezultat për përdoruesit anonimë?"  Kjo hyrje blog përshkruan problemin nga një nga perspektiva fjalen kutinë e kërkimit, por sjellja ishte i ngjashëm me minierën e - ajo ka punuar për përdoruesit e identifikuar dhe për përdoruesit anonimë, por përdoruesit anonimë mori asnjë rezultat. 

I ndjekur udhëzimet dhe zhurmë!  Është zgjidhur çështjen time.  Unë nuk jam i sigurt se çfarë efekte anësore kjo do të ketë dhe ata mund të provojë të jetë një problem i, por rezultati afatshkurtër është i dobishëm.

Kliko në përmes blog:

image

</fund>

Abonohen në blogun tim.

Atëherë ejani pas meje në Twitter në http://www.twitter.com/pagalvin

SharePoint 2010 KeywordQuery dhe Pronës HiddenConstraints

I’ve been doing a bit of work with the KeywordQuery object in SharePoint 2010 and making use of the HiddenConstraints pronë.

Unë nuk e kam gjetur ndonjë informacion menjëherë të dobishme në pronën që, kështu që unë mendova se do të shënoj sa më shpejt që unë kam qenë duke e përdorur atë.

Me aq sa unë mund të them, this is an automatic constraint added to the query so that you can sort of park it there and not worry about it.  As such, it’s just another keyword (or set of keywords) and modifiers that you can type in to the UI when you do a keyword search.  Ja një shembull:

keywordQuery.HiddenConstraints = "scope:\"Industry\"";

You can add additional constraints with a space delimiter.

keywordQuery.HiddenConstraints = "scope:\"Industry\" defense";

The above is saying in English, “run a keyword query looking for “defense” and furthermore, use the “Industry” scope.

Here’s another way of looking at it:

image

I’ve been using it to provide a context-dependent automatic scope on a custom web part.  When the user clicks on a tab and clicks a search button, the tab dictates a particular search scope.  It’s working well so far.

</fund>

Abonohen në blogun tim.

Atëherë ejani pas meje në Twitter në http://www.twitter.com/pagalvin

Shembull: XSLT Krijimi href HTML-së

Unë kam qenë duke bërë një grimë e gjëra XSL kohët e fundit dhe mendova se do të vënë së bashku një mostër për referencë time të ardhshme dhe se mund të jetë me vlerë për të gjithë ne XSLT-këndvështrimi bërë një jetesë në internets.

Konsideroni e mëposhtme XML:

<FdcSearchTabsCollection Count="2">
  <SearchTab Label="Industry" SortOrder=”00” Label=”Industries” SearchConstraints="contenttype:Industri" TabID="831b2a74-98c4-4453-8061-86e2fdb22c63"/>
  <SearchTab Label="Practices" SortOrder=”01” Label=”Practices” SearchConstraints="contenttype:PracticeGroups" TabID="678e206b-6996-421f-9765-b0558fe1a9c0"/>
</FdcSearchTabsCollection>

The following XSL snippet will generate a sorted list of hrefs tabs:

<XSL:template match="FdcSearchTabsCollection" xml:space="preserve">
   
    <!– The "all" tab –>
    <a href="javascript:ViewTab(‘All’)">View all</një>
   
    <!– Each individual tab –>
    <!– Iterate through all the Tabs and display the correct  Lidhje. –>
    <XSL:for-each select="SearchTab">
      <XSL:sort select="@SortOrder"/>

      …
      <a href="javascript:ViewTab('{@TabID}')"><XSL:value-of select="@Label"/></një>
    </XSL:për njëri->

    <br/> 
   

   </XSL:shabllon>

Here’s what it looks like in SharePoint:

SNAGHTML78aa2cb

 

 

</fund>

Abonohen në blogun tim.

Atëherë ejani pas meje në Twitter në http://www.twitter.com/pagalvin