Uendelige fuglefjell <div> Koder og jQuery

Dette virker som en så underlig tema, Jeg er ikke sikker på at det er virkelig verdt blogging om, men som har aldri stoppet meg før, så her gå vi Smil

Jeg arbeider på et prosjekt der jeg trekke noen data fra et søk, emballasje det i en XML-meldingen og deretter at XML er til slutt transformert til HTML via XSLT.  Det er mye av jQuery involvert, en bit av som implementerer noen tabulatornumre funksjonalitet.  Når du klikker på en kategori (virkelig, en <div>), jQuery påkaller .hide() og .show() på ulike divs (Startside belastningen laster ned alt innholdet slik at det er ingen postbacks i dette tilfellet).

En haug med timer siden, kategorien bytte logikk begynte å virke uregelmessig og det vil ikke vise en av Mine fliker.  Jeg til slutt spores det ned til faktum at internet explorer (minst) tenkte at den <div> koder som er nestet langt, langt dypere enn beregnet.Ville vise utviklerverktøylinjen:

-<div id = "Tab1Content">
  -<div>
    -<div>
      -<div id = "Tab2Content">
        -<div>
           …………………………
                   </div>  <-til slutt viser det ble lukket hele veien ned her!

Så, Hvis jeg gjorde en $("# Tab1Content").Skjul(), Jeg ville også skjule Tab2 og jeg kunne aldri vise Tab2 hvis ikke jeg også vise Tab1.  Jeg kopierte og limte inn koden i visual studio og det viste alle div's lining opp pent, akkurat som de skulle gjøre, ser ut som dette:

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

Jeg slo hodet mot veggen for en stund, og la merke til at i den faktiske HTML koden var genererer mye er tom <div> Tags, som:

<kroppen>

  <div id = "Tab1Content">

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

  </div>

  <div id = "Tab2Content">

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

  </div>

</kroppen>

(Dette er waaaaaaaaaaaay oversimplified.  Tom div-koder er helt gyldig. Noen av mine <div> koder var fulle av innhold, men mange flere ble ikke.  Jeg kom til realisering som min <XSL:for each> direktiver var emitting kort-skjemaet div koder når xsl:for each gjorde ikke ' finne noen data.  Jeg tvunget en HTML-kommentar i utdataene, som vist:

image

 

Etter at jeg gjorde det, alle div lined opp pent og min kategorien bytte begynte å arbeide.

Som alltid, Jeg håper dette hjelper noen i en klemme.

</slutten>

Abonner på bloggen min.

Følg meg på Twitter på http://www.twitter.com/pagalvin

Quick Fix: "Navn på innholdstype"$ Resources:ReportServerResources … kan ikke inneholde … spesialtegn”

Jeg har vært tilbringe litt tid rydde opp en SharePoint 2010 området og ett av Opprydding-problemer som er knyttet til en skadet / feilaktig installert SQL Server rapporten Services-problem.  Problemet oppsto da en av mine kolleger prøvde å lagre et område som en mal, og deretter oppretter du oppretter et nytt område som er basert på denne malen.  Lagre operasjonen fungerte fint, men da hun prøvde å opprette det nye området, SharePoint, vises følgende feilmelding:

Feil

Innholdstypen navnet "$ Resources:ReportServerResources,DataSourceContentTypeName;' kan ikke inneholde: \ / : * ? “ # % < > { } | ~ & , to etterfølgende punktum (..), eller spesialtegn, for eksempel en tabulator.

Her er en cap på skjermen:

 

image

Jeg hadde en titt på innholdstypene i området og grunnlegge denne:

image

Disse innholdstypene er klart usunn.

Dette problemet ser ut til å komme opp mye på Internets og det synes ikke å være en enkelt konsensus om hvordan du løser det.  Jeg fant en hendig tabell som tilordnet dårlig innholdstypenavnene til god innholdstypen navn her: http://social.technet.microsoft.com/Forums/en-ZA/sharepoint2010programming/thread/cb03e866-8184-4943-acfe-cafffa1b8b7a.  Jeg oppdatert manuelt dem thusly:

image

(BrightStarr i navnet er åpenbart valgfritt, men det kan ikke skade Smil )

Dette tillater meg å opprette en ny mal og skade ikke noe på andre nettsteder, inkludert noen PerformancePoint Server ting som en helt annen gruppe personer jobber på.  Jeg kunne deretter oppretter et nytt område på malen.  Suksess!

Jeg er ikke sikker på at dette er en 100% løsning, men det fikk meg og alle parter forbi dette irriterende feil.  Hvis jeg finner noe nytt, Jeg skal legge inn en oppdatering.  Min nervøsitet stammer fra det faktum at disse navnene ikke bør være galt i utgangspunktet og ved å rette opp visningsnavnet, Jeg er ikke berøre det interne navnet. 

</slutten>

Abonner på bloggen min.

Følg meg på Twitter på http://www.twitter.com/pagalvin

En sak for "skaperen av denne feilen ikke angav en grunn.”

Jeg har gjort mye arbeid med det siste SharePoint-Søk og spesielt KeywordQuery-klassen, Egenskaper og metoder.

Hvis du vil at resultatsettet til å returnere resultater utover de vanlige mistenkte (se her), du legger det til i samlingen SelectedProperties, som i:

myKeywordQuery.SelectProperties.Add("xyzzy");

Mange takk og et tips av hatten å Corey Roth og Dette enormt nyttig blogginnlegg (http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2008/02/19/how-to-use-the-moss-enterprise-search-keywordquery-class.aspx)

I mitt tilfelle, "xyzzy" er ikke egentlig en forvaltet egenskap.  Når jeg la det til SelectedProperties uansett, SharePoint kastet en av mine favoritt noensinne runtime-unntak:

"Den som oppretteren denne feilen angav ikke en grunn."

Jeg liker spesielt hovedstaden "R" i grunn.  Dette høres for meg ut som den.NET tilsvarer"Jeg har ingen munn, og jeg må skrike.”

</slutten>

Abonner på bloggen min.

Følg meg på Twitter på http://www.twitter.com/pagalvin

Hendig referanse: Standard resultater fra KeywordQuery Søk

Når du starte Execute() metoden på en KeywordQuery, Du kan opprette en ResultTable basert på ResultType.RelevantResults.  Denne kodebiten illustrerer hva jeg mener:

ResultTableCollection resultsTableCollection = myKeywordQuery.Execute();

ResultTable searchResultsTable = resultsTableCollection[ResultType.RelevantResults];

Den resulterende tabellen vil ha følgende kolonner med informasjon: 

Arbeids-IDen
Rang
Tittel
Forfatter
Størrelse
Banen
Beskrivelse
Skrive
Områdenavn
CollapsingStatus
HitHighlightedSummary
HitHighlightedProperties
ContentClass
IsDocument
PictureThumbnailURL
ServerRedirectedURL

Jeg avledet denne listen fra en SharePoint 2010 miljø, Enterprise edition.  Forhåpentligvis vil det praktiske til noen i fremtiden.

</slutten>

Abonner på bloggen min.

Følg meg på Twitter på http://www.twitter.com/pagalvin

En av grunnene til: "Kan ikke trekke ut cab-fil i løsningen”

Mens du arbeider med en webdel for visual studio-prosjekt i dag, Jeg gjorde en mindre re-org av noen filer å bli satt inn i mappen _layouts som en del av distribusjonsprosessen. Spesielt, Jeg har fått nytt navn en js-fil fra "TypeAhead.js" til "TypeAhead(gamle).js"  Jeg har tenkt å fjerne den så snart den etterfølgende aktiviteten "TypeAhead.js" beviser riktig.  Det så ut som dette:

image

Dette forårsaket et problem med visual studio umiddelbart når jeg prøvde å distribuere prosjektet:

Feil i distribusjonen trinn "Legge løsning": Kan ikke trekke ut cab-fil i løsningen.

Det viser seg at du ikke bør sette en parentes i filnavn.  Jeg fjernet den parens og som løst problemet.

</slutten>

Abonner på bloggen min.

Følg meg på Twitter på http://www.twitter.com/pagalvin

Ennå mer jQuery–Endre størrelsen på et bilde-eksempel

Jeg arvet en webdel fra en klient gamle leverandør, og den har en problem med bilde-filstørrelsen.  Bildene skal være 60×50 men for noen merkelig grunn, den originale forhandleren tvunget dem i 42×42, slik at de ser squashed:

 

God bilde

Dårlig bilde

Her er markup (noe forenklet):

<tabellen klasse = 'utvidet outlook'>
  <thead>
    <tr>
      <th  Bredde ='100′>3 Tirsdag</th>
    </tr>
  </thead>

  <tbody>
    <tr-klassen = 'Vær'>
      <TD bredde ='100′>
        <UL>
          <Li class = 'high'>Høy: 72&deg;F</Li>
          <Li class = "lav">Lav: 44&deg;F</Li>
          <Li class = "tilstand">Sunny
            <img src =’
http://deskwx.WeatherBug.com/images/Forecast/icons/localized/60×50/en/trans/cond007.PNG’ Bredde ='42’ høyde ='42’ alt =” />
          </Li>
        </UL>
      </TD>
    </tr>

  </tbody>

</tabell>

Vil du merke at selv om den banen til bildet selv viser den riktige dimensjonen (60×50) den originale forhandleren tvang det i 42×42.  hvorfor?  gal.

Allikevel, Jeg ønsket en rask og enkel løsning på dette problemet, og jeg slått til jQuery.  Trikset var å finne alle de riktige <IMG> koder.  Jeg ønsker ikke å muck med andre img-koder (som er det mange).  Denne bit av jQuery did kunsten:

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

<script type = "text/javascript">
     $(dokumentet).klar(funksjonen () {

         $(' li.condition > IMG').hver(funksjonen (index, element)
           
{
             $(element).CSS("bredden", "60"); 
             $(element).CSS("høyde", "50");
            });
     }); // på dokument-Last
</skriptet>

At litt av koden finner samlingen <Li> koder som har klasse er "tilstand" og <IMG> barn.  Det går deretter gjennom alt dette.  Arbeidet like en ynde.

Jeg kunne sannsynligvis strømlinjeforme it, men jeg var aldri en type unix-fyr som løst π til 18 sifre samplepresisjon sed og awk og jeg er ikke det slag Hvis jQuery fyren enten Smil.

</slutten>

Abonner på bloggen min.

Følg meg på Twitter på http://www.twitter.com/pagalvin

Analyse av XML med LINQ

Her er en rask eksempel bruke LINQ til å analysere noen  XML- og gå på søte, Sweet attributter deri.

Her er jeg vil analysere XML:

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

    <Navn på PageLayout = "xyzzy">
      <Faner>
        <Kategorien TabOrder = "1" TabLabel = "x" SharePointContentType = "a" AdditionalConstraints = "ac1" />
        <Kategorien TabOrder = "2" TabLabel = "y" SharePointContentType = "b" AdditionalConstraints = "ac2" />
      </Faner>
    </PageLayout>

    <Navn på PageLayout = "xyzzy2">
      <Faner>
        <Kategorien TabOrder = "100" TabLabel = "x" SharePointContentType = "a" AdditionalConstraints = "ac1" />
        <Kategorien TabOrder = "101" TabLabel = "y" SharePointContentType = "b" AdditionalConstraints = "ac2" />
        <Kategorien TabOrder = "103" TabLabel = "z" SharePointContentType = "c" AdditionalConstraints = "ac3" />
      </Faner>
    </PageLayout>

  </PageLayouts>
</DeafultConfigurationSets>

Jeg ønsker å bygge opp noen kategorier under kjøring ved analysering ovenfor.  Mine fliker, er avhengig av et sideoppsett.  Hvis min sideoppsett-navnet er "xyzzy2" deretter vil jeg få tabulatorer 100, 101 og 103 (kategoriene i <Navn på PageLayout = "xyzzy2">).

Her er LINQ som gjør det:

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

          Results.Text = streng.Tom;

          foreach (var aTab i allTabs)
          {
              Results.Text = (likhetstegn)
                  "Tabulatorrekkefølgen: " + aTab.Attribute("TabOrder").Verdi + " |" +
                  "Kategorietikett: " + aTab.Attribute("TabLabel").Verdi + " | " +
                  "SharePointContentType: " + aTab.Attribute("SharePointContentType").Verdi + " | " +
                  "AdditionalConstraints: " + aTab.Attribute("AdditionalConstraints").Verdi + "r";
          }

I de ovennevnte, variabelen "theXmlToParse" er en strengvariabel, men du kan bruke belastningen() metoden en dataflyt, hvis du liker.

"Resultater" er en etikett på et webskjema, og når denne koden utføres, Det ser ut som dette:

SNAGHTML11cd2e7c

Jeg ikke har jobbet ut hvordan du kan sortere resultatene ennå, så jeg vil la det for en fremtidig blogginnlegg.

</slutten>

Abonner på bloggen min.

Følg meg på Twitter på http://www.twitter.com/pagalvin

SharePoint 2010 KeywordQuery og anonyme brukere

Jeg har aktivert anonym tilgang på nettstedet mitt for å teste ut en søk-webdel som jeg har utviklet og til ingen stor overraskelse, Det tok ikke helt fungerer.  Anonym tilgang er ganske mye det er alltid en utfordring for meg.

I dette tilfellet, det første søket kjørte ikke en eller annen grunn.  Jeg må si at det var kjører, men det var ikke returnerer noen resultater.  Jeg bruker KeywordQuery for den første skjermen.

Jeg gjorde et raskt søk og denne bloggen postering av"sowmyancs"kom ganske fort: “SharePoint 2010 Søk: viser ikke noen resultater for anonyme brukere?”  At bloggoppføring beskriver problemet fra en ute av boksen søkeord søk perspektiv, men virkemåten var lignende til gruven – arbeidet det for godkjente brukere og for anonyme brukere, men anonyme brukere fikk ingen resultater. 

Jeg har fulgt instruksjonene og bang!  Det løste problemet.  Jeg er ikke sikker på hva dette vil ha bivirkninger, og de kan vise seg for å være et problem, men kort sikt resultatet er nyttig.

Klikk på gjennom bloggen:

image

</slutten>

Abonner på bloggen min.

Følg meg på Twitter på http://www.twitter.com/pagalvin

SharePoint 2010 KeywordQuery og HiddenConstraints-egenskapen

Jeg har gjort litt av arbeidet med den KeywordQuery objektet i SharePoint 2010 og å bruke den HiddenConstraints egenskapen.

Jeg fant ikke umiddelbart nyttig informasjon på den som egenskapen, så jeg tenkte jeg ville raskt døyt ned hvordan jeg har brukt det.

Så vidt jeg kan si, Dette er en automatisk betingelse som er lagt til spørringen slik at du kan sortere Park det det og ikke bekymre deg om det.  Som sådan, Det er bare en annen nøkkelord (eller et sett med nøkkelord) og ved at du kan skrive inn til Brukergrensesnittet når du gjør en søkeordsøk.  Her er et eksempel:

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

Du kan legge til flere betingelser med et plass-skilletegn.

keywordQuery.HiddenConstraints = "område:\"Industry" forsvar";

Ovenfor er ordtak i engelsk, "Kjør en søkeordet som er på jakt etter"forsvar"og videre, bruke "Industri" omfanget.

Her er en annen måte å se på det.:

image

Jeg har brukt det til å gi en sammenheng-avhengige automatisk omfang på en egendefinert webdel.  Når brukeren klikker på en kategori og klikker Søk-knappen, kategorien tilsier et bestemt søkeomfang.  Det fungerer godt så langt.

</slutten>

Abonner på bloggen min.

Følg meg på Twitter på http://www.twitter.com/pagalvin

Eksempel: XSLT opprette HTML-Href

Jeg har gjort litt av XSL ting i det siste og tenkte jeg skulle sette sammen et utvalg for min fremtidig referanse og som kan være av verdi for oss alle XSLT-ers å lage en levende i internets.

Vurder følgende XML:

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

Følgende XSL tekstutdrag vil generere en sortert liste over hrefs faner:

<XSL:mal kamp = "FdcSearchTabsCollection" XML:Space = "bevare">
   
    <!– "Alt" kategorien –>
    <a href = "javascript:ViewTab(' Den)">Vis alle</en>
   
    <!– Hver enkelt kategori –>
    <!– Gå gjennom alle kategoriene og vise riktig  koblinger. –>
    <XSL:for hver Velg = "SearchTab">
      <XSL:sortere select="@SortOrder"/>

      …
      <a href = "javascript:ViewTab(‘{@TabId}’)"><XSL:verdien av select="@Label"/></en>
    </XSL:for each>

    <br /> 
   

   </XSL:mal>

Her er hva det ser ut i SharePoint:

SNAGHTML78aa2cb

 

 

</slutten>

Abonner på bloggen min.

Følg meg på Twitter på http://www.twitter.com/pagalvin