Uendelige indlejring <div> Mærker og jQuery

Dette synes at være sådan en oddball emne, Jeg er ikke sikker på, at det er virkelig værd at blogging om, men der er aldrig stoppet mig før, så her gå vi Smil

Jeg arbejder på et projekt, hvor jeg trækker nogle data fra en søgning, emballage det i en XML-besked og derefter at XML er i sidste ende omdannes til HTML via XSLT.  Der er en masse af jQuery involveret, en smule som implementerer nogle Tabber funktionalitet.  Når du klikker på en fane (Virkelig, en <div>), jQuery påberåber sig .hide() og .show() på forskellige divs (den første side belastning henter alt indholdet, så der er ingen postbacks i dette tilfælde).

En flok af timer siden, fanen skifte logik begyndte at opføre sig ustabilt og det ville ikke vise en af mine faner.  Jeg i sidste ende sporede det ned til faktum, at internet explorer (mindst) troede, at den <div> Tags indlejret langt, langt dybere end beregnet.Udvikler værktøj vil vise:

-<div id = "Tab1Content">
  -<div>
    -<div>
      -<div id = "Tab2Content">
        -<div>
           …………………………
                   </div>  <— Endelig viser det var lukket helt ned her!

Så, Hvis jeg gjorde en $("#Tab1Content").Skjul(), Jeg ville også skjule Fane2, og jeg kunne aldrig vise Fane2 hvis jeg ikke også vise Fane1.  Jeg har kopieret og indsat koden i visual studio og det viste alle div's foring op pænt, ligesom de skulle gøre, ser ud som dette:

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

Jeg slog mit hoved mod væggen for et stykke tid og bemærket, at i den faktiske HTML kode genererer en masse tomme <div> Tags, ligesom:

<kroppen>

  <div id = "Tab1Content">

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

  </div>

  <div id = "Tab2Content">

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

  </div>

</kroppen>

(Ovenstående er waaaaaaaaaaaay forsimplede.  Tom div tags er helt gyldigt. Nogle af mine <div> Tags var fuld af indhold, men mange flere blev ikke.  Jeg kom til erkendelsen at min <XSL:for hver> direktiverne udsender kort form div tags når xsl:for hver gjorde ikke ' finde data.  Jeg tvunget en HTML-kommentar til output, som vist:

image

 

Efter at jeg gjorde det, alle div foret pænt og min fane skifte begyndte at arbejde.

Som altid, Jeg håber dette hjælper en person i en knivspids.

</slutningen>

Abonner på min blog.

Følg mig på kvidre på http://www.twitter.com/pagalvin

Quick Fix: "Indholdstype navnet '$ ressourcer:ReportServerResources … må ikke indeholde … specialtegn”

Jeg har udgifter tid rengøring op et SharePoint 2010 websted og et af oprydning spørgsmålene vedrører en beskadiget / forkert installeret SQL Server betænkning Services problem.  Spørgsmålet opstod, da en af mine kolleger har forsøgt at gemme et websted som en skabelon og derefter oprette opretter et nyt websted baseret på denne skabelon.  Gem drift arbejdede fint, Men da hun forsøgte at oprette det nye websted, SharePoint vises følgende fejlmeddelelse:

Fejl

Navnet på indholdstypen '$ ressourcer:ReportServerResources,DataSourceContentTypeName;' må ikke indeholde: \ / : * ? “ # % < > { } | ~ & , to på hinanden følgende perioder (..), eller specialtegn såsom en fane.

Her er en skærm fælles landbrugspolitik:

 

image

Jeg havde et kig på de indholdstyper på webstedet og fundet dette:

image

Disse indholdstyper er klart usund.

Problemet lader til at komme en masse på Internets og der synes ikke at være en enkelt konsensus om, hvordan at løse det.  Jeg fandt en praktisk tabel som afbildet navnene i dårlig indholdstype til god indholdstype navne her: http://social.technet.microsoft.com/Forums/en-ZA/sharepoint2010programming/thread/cb03e866-8184-4943-acfe-cafffa1b8b7a.  Jeg opdateret manuelt dem thusly:

image

(BrightStarr i navnet er naturligvis valgfri, men det kan ikke skade Smil )

Dette tilladt mig at oprette en ny skabelon og bryde ikke noget på de andre websteder, herunder nogle PerformancePoint Server stuff, en helt anden gruppe mennesker arbejdede på.  Jeg kunne derefter oprette et nyt websted på skabelonen.  Succes!

Jeg er ikke sikker på, at dette er en 100% løsning, men det fik mig og alle involverede forbi denne irriterende fejl.  Hvis jeg finder noget nyt, Jeg vil bogføre en opdatering.  Min nervøsitet skyldes, at disse navne ikke bør være forkert i første omgang og ved fastsættelse af det viste navn, Jeg ikke rører det interne navn. 

</slutningen>

Abonner på min blog.

Følg mig på kvidre på http://www.twitter.com/pagalvin

Én årsag til "opretteren af fejlen ikke angav en årsag.”

Jeg har gjort en masse arbejde med SharePoint søgning det seneste og specifikt klassen KeywordQuery, egenskaber og metoder.

Hvis du vil resultatsættet til returnere resultater ud over de sædvanlige mistænkte (Se her), Du føjer det til samlingen SelectedProperties, som i:

myKeywordQuery.SelectProperties.Add("xyzzy");

Mange tak og en spids af hatten til Corey Roth og denne enormt nyttigt blog-indlæg (http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2008/02/19/how-to-use-the-moss-enterprise-search-keywordquery-class.aspx)

I mit tilfælde, "xyzzy" er ikke ligefrem en administreret egenskab.  Når jeg tilføjet det til SelectedProperties alligevel, SharePoint kastede en af mine yndlings nogensinde runtime undtagelser:

"Skaberen af fejlen angav ikke en årsag."

Jeg kan specielt godt lide kapital "R" i grunden.  Dette lyder for mig som .NET svarende til"Jeg har ingen munden, og jeg må skrige.”

</slutningen>

Abonner på min blog.

Følg mig på kvidre på http://www.twitter.com/pagalvin

Nyttigt opslagsværk: Standard resultater fra KeywordQuery søgning

Når du aktiverer Execute() metode på en KeywordQuery, Du kan oprette en ResultTable baseret på ResultType.RelevantResults.  Dette kodestykke illustrerer, hvad jeg mener:

ResultTableCollection resultsTableCollection = myKeywordQuery.Execute();

ResultTable searchResultsTable = resultsTableCollection[ResultType.RelevantResults];

Den resulterende tabel vil have følgende kolonner af oplysninger: 

Arbejds-id'et
Rang
Titel
Forfatter
Størrelse
Sti
Beskrivelse
Skrive
SiteName
CollapsingStatus
HitHighlightedSummary
HitHighlightedProperties
ContentClass
IsDocument
PictureThumbnailURL
ServerRedirectedURL

Jeg afledte denne liste fra et SharePoint 2010 miljø, Enterprise edition.  Forhåbentlig vil det være praktisk at en person i fremtiden.

</slutningen>

Abonner på min blog.

Følg mig på kvidre på http://www.twitter.com/pagalvin

Én grund til: "Mislykkedes at udpakke filen cab i løsningen”

Mens du arbejder på en visual studio webdel projekt i dag, Jeg gjorde en mindre re-org af nogle af filerne til bringes i mappen _layouts som led i implementeringsprocessen. Specifikt, Jeg omdøbt en .js fil fra "TypeAhead.js" til "TypeAhead(gamle).js"  Jeg planlægger at fjerne det så snart dens efterfølger "TypeAhead.js" godtgør korrekte.  Det lignede dette:

image

Dette umiddelbart forårsagede et problem med visual studio, da jeg prøvede at implementere projektet:

Der opstod fejl i installationen trin 'Tilføje løsning': Mislykkedes at udpakke filen cab i løsningen.

Det viser sig, at du ikke bør sætte en parentes i filnavne.  Jeg fjernet den parens og som løst problemet.

</slutningen>

Abonner på min blog.

Følg mig på kvidre på http://www.twitter.com/pagalvin

Endnu flere jQuery–Ændre størrelsen på et billede eksempel

Jeg har arvet en webdel fra en klient gamle leverandør, og det har et imageproblem størrelse.  Billederne bør 60×50 Men for nogle underlige grund, den oprindelige forhandler tvunget dem til 42×42, så de ser squashed:

 

Godt billede

Dårligt Image

Her er opmærkningen (lidt forenklet):

<tabel class = 'extended-outlook'>
  <thead>
    <Tr>
      <th  bredde ='100′>3 Tirsdag</th>
    </Tr>
  </thead>

  <TBODY>
    <TR class = "prognose">
      <TD bredde ='100′>
        <UL>
          <Li klasse = 'høj'>Høj: 72&DEG;F</Li>
          <Li class = "lavt">Lav: 44&DEG;F</Li>
          <Li class = "stand">Solrig
            <img src =’
http://deskwx.weatherbug.com/images/Forecast/icons/localized/60×50/en/Trans/cond007.png’ bredde ='42’ højde ='42’ alt =” />
          </Li>
        </UL>
      </TD>
    </Tr>

  </TBODY>

</tabel>

Du vil bemærke, at selv om den stien til selve billedet viser den korrekte dimension (60×50) den oprindelige leverandør tvunget det i 42×42.  Hvorfor?  Tosset.

Alligevel, Jeg ønskede en hurtig og nem løsning på dette spørgsmål, og jeg vendte til jQuery.  Tricket var at finde alle de relevante <IMG> Tags.  Jeg gjorde ikke ønsker at nusse rundt med andre img-tags (hvoraf er der mange).  Denne bit af jQuery gjorde tricket:

<script type = text/javascript"" src ="http://Ajax.googleapis.com/Ajax/libs/jQuery/1.5/jQuery.min.js"></script>

<script type = "tekst/javascript">
     $(dokument).klar til(funktion () {

         $(' li.condition > IMG').hver(funktion (indeks, varen)
           
{
             $(varen).CSS("bredde", "60"); 
             $(varen).CSS("højde", "50");
            });
     }); // på dokumentet belastning
</script>

Smule kode finder samlingen <Li> Tags hvis klassen er "tilstand" og <IMG> børn.  Det gentages derefter gennem alt dette.  Arbejdede lige en indtage.

Jeg kunne nok strømline it, men jeg har aldrig været en form for unix fyr, der løst π til 18 cifre præcision ved hjælp af sed og awk og jeg er ikke slags, hvis jQuery fyr enten Smil.

</slutningen>

Abonner på min blog.

Følg mig på kvidre på http://www.twitter.com/pagalvin

Parsing af XML med LINQ

Her er et hurtigt eksempel ved hjælp af LINQ til at parse nogle  XML- og stå ved søde, Sweet attributter deri.

Her er det XML-jeg ønsker at analysere:

<?XML version = "1.0" kodning = "utf-8" ?>
<DeafultConfigurationSets>
  <PageLayouts>

    <PageLayout navn = "xyzzy">
      <Faner>
        <Under fanen TabOrder = "1" TabLabel = "x" SharePointContentType = "en" AdditionalConstraints = "ac1" />
        <Under fanen TabOrder = "2" TabLabel = "y" SharePointContentType = "b" AdditionalConstraints = "ac2" />
      </Faner>
    </PageLayout>

    <PageLayout name = "xyzzy2">
      <Faner>
        <Under fanen TabOrder = "100" TabLabel = "x" SharePointContentType = "en" AdditionalConstraints = "ac1" />
        <Under fanen TabOrder = "101" TabLabel = "y" SharePointContentType = "b" AdditionalConstraints = "ac2" />
        <Under fanen TabOrder = "103" TabLabel = "z" SharePointContentType = "c" AdditionalConstraints = "ac3" />
      </Faner>
    </PageLayout>

  </PageLayouts>
</DeafultConfigurationSets>

Jeg ønsker at opbygge nogle faner på kørselstidspunktet ved parsing af ovenstående.  Min faner afhænger af et sidelayout.  Hvis min sidelayout navn er "xyzzy2" så vil jeg få faner 100, 101 og 103 (fanerne i <PageLayout name = "xyzzy2">).

Her er den LINQ, der gør det:

var allTabs =
              fra p i
                  XElement.Parse(theXmlToParse).
                 
Elementer("PageLayouts").
                  Elementer("PageLayout")
              hvor (p.Attribute("navn").Value.Equals("xyzzy2"))
              fra m i p.Elements("Tabs").Elementer("Tab")
              Vælg m;

          Results.Text = streng.Tom;

          foreach (var aTab i allTabs)
          {
              Results.Text =
                  "Tabulatorrækkefølge: " + aTab.Attribute("TabOrder").Værdi + " |" +
                  "Fanen etiket: " + aTab.Attribute("TabLabel").Værdi + " | " +
                  "SharePointContentType: " + aTab.Attribute("SharePointContentType").Værdi + " | " +
                  "AdditionalConstraints: " + aTab.Attribute("AdditionalConstraints").Værdi + "r";
          }

I ovenstående, variablen "theXmlToParse" er en strengvariabel, men du kan bruge belastningen() metode på en stream, hvis du kan lide.

"Resultater" er en etiket på en web-formular, og når denne kode udfører, Det ser sådan ud:

SNAGHTML11cd2e7c

Jeg har ikke regnet ud, hvordan man sortere resultaterne endnu, så jeg vil overlade til en fremtidig blog-indlæg.

</slutningen>

Abonner på min blog.

Følg mig på kvidre på http://www.twitter.com/pagalvin

SharePoint 2010 KeywordQuery og anonyme brugere

Jeg har aktiveret anonym adgang i mit websted til at teste ud webdelen Søg jeg har udviklet og til ingen store overraskelse, Det fungerede helt.  Anonym adgang er temmelig altid en udfordring for mig.

I dette tilfælde, indledende søgningen Filhåndtering kører nogle grunde.  Jeg bør sige, at det var kører, men det ikke returnerer nogen resultater.  Jeg bruger KeywordQuery til den oprindelige visning.

Jeg gjorde en hurtig søgning og denne blog-indlæg ved"sowmyancs"kom op temmelig hurtigt: “SharePoint 2010 Søg: ikke viser nogen resultater for anonyme brugere?”  At blogindlæg beskriver problemet fra en ud af boksen nøgleord søgning overslag men problemet var magen til mine – arbejdede det for godkendte brugere og for anonyme brugere, men anonyme brugere fik ingen resultater. 

Jeg har fulgt de instrukser og bang!  Det løses mit problem.  Jeg er ikke sikker på, hvad side virkninger dette vil have, og de kan vise sig for at være et problem, men kort sigt resultatet er nyttigt.

Klik på gennem bloggen:

image

</slutningen>

Abonner på min blog.

Følg mig på kvidre på http://www.twitter.com/pagalvin

SharePoint 2010 KeywordQuery og egenskaben HiddenConstraints

Jeg har gjort en smule af arbejdet med den KeywordQuery objekt i SharePoint 2010 og gør brug af den HiddenConstraints Egenskaben.

Enhver straks nyttige oplysninger om den, der fandt ikke egenskaben, så jeg tænkte ville jeg hurtigt margennotevinduer hvordan jeg har brugt det.

Så vidt jeg kan fortælle, Dette er en automatisk begrænsning føjes til forespørgslen, så du kan sortere Park det der og ikke bekymre dig om det.  Som sådan, Det er bare et andet nøgleord (eller sæt søgeord) og ordrefaktorer, som du kan skrive i til Brugergrænsefladen, når du gør en nøgleordssøgning.  Her er et eksempel:

keywordQuery.HiddenConstraints = "anvendelsesområde:\"Industry" ";

Du kan tilføje yderligere begrænsninger med en plads afgrænser.

keywordQuery.HiddenConstraints = "anvendelsesområde:\"Industry" forsvaret";

Ovenstående siger på engelsk, "køre en forespørgsel for nøgleord på udkig efter"forsvar"og desuden, bruge "Industri" anvendelsesområde.

Her er en anden måde at kigge på det:

image

Jeg har brugt det til at give en kontekst-afhængige af automatiske anvendelsesområde på en brugerdefineret webdel.  Når brugeren klikker på en fane og klikker på søgeknappen, fanen dikterer et bestemt søgeområde.  Det arbejder godt hidtil.

</slutningen>

Abonner på min blog.

Følg mig på kvidre på http://www.twitter.com/pagalvin

Eksempel: XSLT oprette HTML-Href

Jeg har været gør lidt af XSL-stuff det seneste og troede jeg ville tilsammen en prøve for min fremtidige henvisning og som kan være af værdi for os alle XSLT-omhandlet gør en levende i internets.

Overveje følgende XML:

<FdcSearchTabsCollection Count = "2">
  <SearchTab etiket = "industri" SortOrder = "00" etiket = "Industrier" SearchConstraints = "contenttype:Industri" TabID = "831b2a74-98c4-4453-8061-86e2fdb22c63" />
  <SearchTab etiket = "praksis" SortOrder = "01" etiket = "Praksis" SearchConstraints = "contenttype:PracticeGroups" TabID = "678e206b-6996-421f-9765-b0558fe1a9c0" />
</FdcSearchTabsCollection>

Den følgende XSL snippet vil generere en sorteret liste af faner, hrefs:

<XSL:skabelon match = "FdcSearchTabsCollection" XML:plads = "bevare">
   
    <!– Alle"" fanen –>
    <a href = "javascript:ViewTab('Alle')">Få vist alle</en>
   
    <!– Hver enkelt fane –>
    <!– Iterere gennem alle fanerne og vise den korrekte  links. –>
    <XSL:for hver select = "SearchTab">
      <XSL:sortere select="@SortOrder"/>

      …
      <a href = "javascript:ViewTab(‘{@ TabID}’)"><XSL:værdi-af select="@Label"/></en>
    </XSL:for hver>

    <BR /> 
   

   </XSL:skabelon>

Her er hvad det ser ud i SharePoint:

SNAGHTML78aa2cb

 

 

</slutningen>

Abonner på min blog.

Følg mig på kvidre på http://www.twitter.com/pagalvin