Eindeloos nes <Div> Etikette en jQuery

Dit lyk soos 'n oddball onderwerp, Ek is nie seker dit is regtig die moeite werd blog oor, maar dit was nog nooit my gestop voor, so hier gaan ons Smile

Ek werk op 'n projek waar ek trek sommige data van 'n soektog, verpakking dit in 'n XML-boodskap en dan dat die XML is uiteindelik verander in HTML via XSLT.  Daar is 'n baie jQuery betrokke, n bietjie waarvan implemente tabbing funksionaliteit.  Wanneer jy op 'n blad (werklik, 1 <Div>), jQuery beroept. verberg() en show() op verskeie divs (die eerste bladsy vrag afgelaai Al die inhoud, sodat daar is geen postbacks in hierdie geval).

'N klomp ure gelede, die blad te skakel logika begin om ongereeld te tree en dit sou nie wys een van my tabs.  Ek het uiteindelik opgespoor het dit aan die feit dat Internet Explorer (ten minste) gedink het dat die <Div> tags genes ver, veel dieper as intended.The ontwikkelaar toolbar sal wys:

-<div id = "Tab1Content">
  -<Div>
    -<Div>
      -<div id = "Tab2Content">
        -<Div>
           ..............................
                   </Div>  <-Finaal deur is gesluit al die pad hier!

So, As ek dit het 'n $("# Tab1Content").verberg(), Ek wil ook wegsteek Tab2 en ek kon nooit wys Tab2 as ek het ook nie Tab1 wys.  Ek die kode gekopieer en geplak in Visual Studio en dit het gewys al die DIV se voering mooi, net soos hulle veronderstel was om te doen, soek soos hierdie:

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

Ek het my kop teen die muur vir 'n rukkie en het opgemerk dat in die HTML-kode is 'n baie leë genereer <Div> tags, soos:

<liggaam>

  <div id = "Tab1Content">

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

  </Div>

  <div id = "Tab2Content">

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

  </Div>

</liggaam>

(The above is waaaaaaaaaaaay oversimplified.  Die leë div tags is heeltemal geldig. Sommige van my <Div> tags was vol van die inhoud, maar baie meer was nie.  Ek het tot die besef gekom dat my <xsl:vir-elke> riglyne is die afgee van die kort vorm div tags toe die XSL:vir elkeen het 'nie enige data te vind nie.  Ek gedwing om 'n HTML-kommentaar in die uitset, soos aangedui:

image

 

Nadat ek dit gedoen het, al die div mooi is lined up en my blad skakeling begin werk.

Soos altyd, Ek hoop dit help iemand in 'n knippie.

</einde>

Skryf in op my blog.

Volg my op Twitter http://www.twitter.com/pagalvin

Quick fix: "Die inhoud tik naam '$ Hulpbronne:ReportServerResources … kan U nie bevat … spesiale karakters”

Ek het al geruime tyd spandeer die skoonmaak van 'n SharePoint 2010 terrein en een van die probleme met die opruim betrekking het op 'n korrupte / verkeerd geïnstalleer SQL Server Verslag Dienste kwessie.  Die probleem het ontstaan ​​toe een van my kollegas het probeer om 'n webwerf as 'n sjabloon te red en dan maak die skep van 'n nuwe webwerf wat gebaseer is op daardie sjabloon.  Die save werking werk goed, Maar toe sy probeer het om die nuwe webwerf te skep, SharePoint vertoon die volgende foutboodskap:

Fout

Die inhoud tik naam '$ Resources:ReportServerResources,DataSourceContentTypeName;"Kan nie bevat: \ / : * ? " # % < > { } | ~ & , twee agtereenvolgende periodes (..), of spesiale karakters soos 'n blad.

Hier is 'n screen cap:

 

image

Ek het 'n blik op die inhoud in die werf en het gevind dat hierdie:

image

Diegene inhoud tipes is duidelik ongesonde.

Hierdie kwessie blyk om te kom tot 'n baie op die Inter en is daar nie 'n konsensus oor hoe om dit op te los.  Ek het 'n handige tabel wat gekarteer die slegte inhoud tipe name goeie inhoud tipe name hier: http://social.technet.microsoft.com/Forums/en-ZA/sharepoint2010programming/thread/cb03e866-8184-4943-acfe-cafffa1b8b7a.  Ek het hand opgedateer hulle thusly:

image

(BrightStarr in die naam is natuurlik opsionele, maar dit kan nie kwaad doen nie Smile )

Dit het my toegelaat om 'n nuwe sjabloon te skep en het nie breek nie iets op die ander terreine, insluitend sommige PerformancePoint Server dinge wat 'n heeltemal ander groep mense gewerk het.  Ek was in staat om 'n nuwe tuiste op die sjabloon te skep.  Sukses!

Ek is nie seker dit is 'n 100% oplossing, maar dit het vir my en almal wat betrokke is verby hierdie irriterende fout.  As ek iets nuuts, Ek sal na 'n update.  My senuweeagtigheid spruit uit die feit dat hierdie name nie verkeerd wees in die eerste plek en deur die vaststelling van die vertoning naam, Ek raak nie aan die interne naam. 

</einde>

Skryf in op my blog.

Volg my op Twitter http://www.twitter.com/pagalvin

Een rede vir "Die skepper van hierdie fout het nie 'n rede.”

Ek is besig met 'n baie werk met SharePoint soek die afgelope tyd en spesifiek die KeywordQuery klas, eienskappe en metodes.

As jy wil die resultaat stel om terug te keer bo en behalwe die gewone verdagtes (Kyk hier), jy dit by die SelectedProperties versameling, soos in:

myKeywordQuery.SelectProperties.Add("Xyzzy");

Baie dankie en 'n wenk van die hoed Corey Roth en hierdie baie nuttig blog boodskap (http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2008/02/19/how-to-use-the-moss-enterprise-search-keywordquery-class.aspx)

In my geval, "Xyzzy" is nie eintlik 'n bestuurde eiendom.  Toe ek dit in elk geval aan SelectedProperties, SharePoint gooi een van my gunsteling runtime uitsonderings:

"Die skepper van hierdie skuld het nie 'n rede."

Ek wil veral die hoofstad "R" in die rede.  Dit klink vir my soos die NET ekwivalent. "Ek het geen mond, en ek moet skree."

</einde>

Skryf in op my blog.

Volg my op Twitter http://www.twitter.com/pagalvin

Nuttige verwysing: Die standaard Resultate van KeywordQuery Soek

Wanneer jy roep vir uitvoer() metode op 1 KeywordQuery, jy skep 'n ResultTable gebaseer op ResultType.RelevantResults.  Hierdie kode uit illustreer wat ek bedoel:

ResultTableCollection resultsTableCollection = myKeywordQuery.Execute();

ResultTable searchResultsTable = resultsTableCollection[ResultType.RelevantResults];

Die tabel sal die volgende kolomme van inligting: 

WorkId
Rangskik
Titel
Skrywer
Grootte
Pad
Description
Skryf
Site Naam
CollapsingStatus
HitHighlightedSummary
HitHighlightedProperties
ContentClass
IsDocument
PictureThumbnailURL
ServerRedirectedURL

Ek afgelei hierdie lys van 'n SharePoint 2010 omgewing, Enterprise Edition.  Hopelik sal dit handig wees vir iemand in die toekoms.

</einde>

Skryf in op my blog.

Volg my op Twitter http://www.twitter.com/pagalvin

Een van die redes vir: "Kon nie die taxi-lêer in die oplossing te onttrek”

Terwyl jy werk op 'n visuele ateljee web deel projek vandag, Ek het 'n klein re-org van 'n paar lêers word in die gids _layouts as deel van die ontplooiing. Spesifiek, Ek herdoop die JS lêer van "TypeAhead.js" na "TypeAhead(ou).js "  Ek is van plan om dit so gou as sy opvolger "TypeAhead.js" bewys korrek te verwyder.  Dit het gelyk soos hierdie:

image

Dit het onmiddellik veroorsaak 'n probleem met Visual Studio toe ek probeer het om die projek te sit:

Error occurred in deployment step ‘Add Solution’: Versuim het om die taxi-lêer te onttrek in die oplossing.

Dit blyk dat jy nie moet 'n hakies in lêername nie.  Ek verwyder die parens en dat die probleem opgelos.

</einde>

Skryf in op my blog.

Volg my op Twitter http://www.twitter.com/pagalvin

Nog Meer jQuery–Grootte van 'n image Voorbeeld

Ek geërf het van 'n web deel van 'n kliënt se ou ondernemer en dit het 'n beeld grootte probleem.  Die beelde is 60×50 maar vir sommige vreemd rede, die oorspronklike verskaffer gedwing om hulle in 42×42, so kyk hulle platgedruk:

 

N goeie beeld

Slegte beeld

Hier is die winsgrens (ietwat vereenvoudigde):

<table class = "Gevorderde-vooruitsigte>
  <thead>
    <tr>
      <ste  width = '100′>3 Dinsdag</ste>
    </tr>
  </thead>

  <tbody>
    <tr class = "voorspelling">
      <td width = '100′>
        <Straat>
          <li class = 'n hoë>Hoë: 72&jy;F</li>
          <li class = "low">Lae: 44&jy;F</li>
          <li class = "toestand">Sunny
            <img src =’
http://deskwx.weatherbug.com/images/Forecast/icons/localized/60×50/en/trans/cond007.png’ width = '42’ hoogte = '42’ alt =” />
          </li>
        </Straat>
      </td>
    </tr>

  </tbody>

</tafel>

Jy sal let dat hoewel die pad na die beeld self toon die korrekte dimensie (60×50) die oorspronklike verskaffer gedwing om dit in 42×42.  Hoekom?  Crazy.

In elk geval, Ek wou 'n vinnige en maklike oplossing vir hierdie kwessie en ek draai om jQuery.  Die geheim is om almal op te spoor van die toepaslike <img> tags.  Ek het nie wil die muck oor met enige ander img tags (wat daar is baie).  Hierdie bietjie van die jQuery het die truuk:

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

<script type = "text / JavaScript">
     $(dokument).gereed(funksie () {

         $(‘li.condition > img ").elke(funksie (indeks, item)
           
{
             $(item).css("Width", "60"); 
             $(item).css("Hoogte", "50");
            });
     }); // dokument vrag
</script>

Daardie bietjie van die kode bevind dat die versameling <li> tags wie se klas is "toestand" en <img> kinders.  Dit iterate dan deur alles.  Soos 'n bom gewerk.

Ek kon dit waarskynlik meer vaartbelyn, maar ek was nog nooit die soort van die unix man wat opgelos π aan 18 syfers presisie met sed en AWK en ek is nie daardie soort indien jQuery man Smile.

</einde>

Skryf in op my blog.

Volg my op Twitter http://www.twitter.com/pagalvin

Ontleding van XML met linQ

Hier is 'n vinnige voorbeeld gebruik van linQ 'n paar te ontleed  XML en kry by die lieflike, soet eienskappe daarin.

Hier is die XML wat ek wil ontleed:

<?die xml weergawe = "1,0" encoding = utf-8" ?>
<DeafultConfigurationSets>
  <PageLayouts>

    <PageLayout name = "Xyzzy">
      <Tabs>
        <Tab TabOrder = "1" TabLabel = "x" SharePointContentType = "'n" AdditionalConstraints = "AC1" />
        <Tab TabOrder = "2" TabLabel = "y" SharePointContentType = "b" AdditionalConstraints = "AC2" />
      </Tabs>
    </PageLayout>

    <PageLayout name = "xyzzy2">
      <Tabs>
        <Tab TabOrder = "100" TabLabel = "x" SharePointContentType = "'n" AdditionalConstraints = "AC1" />
        <Tab TabOrder = "101" TabLabel = "y" SharePointContentType = "b" AdditionalConstraints = "AC2" />
        <Tab TabOrder = "103" TabLabel = "z" SharePointContentType = "C" AdditionalConstraints = "AC3" />
      </Tabs>
    </PageLayout>

  </PageLayouts>
</DeafultConfigurationSets>

Ek wil n paar tabs tydens looptyd deur die ontleding van die bogenoemde op te bou.  My oortjies hang af op 'n bladuitleg.  As my bladuitleg se naam is "xyzzy2" dan wil ek weet oortjies te kry 100, 101 en 103 (die tabs in <PageLayout name = "xyzzy2">).

Hier is die linQ wat doen dit:

allTabs =
              vanaf P
                  XElement.Parse(theXmlToParse).
                 
Elemente("PageLayouts").
                  Elemente("PageLayout")
              waar (p.Attribute("Naam").Value.Equals("Xyzzy2"))
              van m in p.Elements("Tabs").Elemente("Tab")
              kies m;

          Results.Text = string.Empty;

          foreach (ATAB is allTabs)
          {
              Results.Text =
                  "Tab Bestel: " + aTab.Attribute("TabOrder").Waarde + " |" +
                  "Etiket: " + aTab.Attribute("TabLabel").Waarde + " | " +
                  "SharePointContentType: " + aTab.Attribute("SharePointContentType").Waarde + " | " +
                  "AdditionalConstraints: " + aTab.Attribute("AdditionalConstraints").Waarde + " R";
          }

In die bogenoemde, die wisselende "theXmlToParse" is 'n string veranderlike, maar jy kan gebruik om die las() metode op 'n stroom as jy wil.

"Resultate" is 'n etiket op 'n web vorm en wanneer hierdie kode uitvoer, Dit lyk soos volg:

SNAGHTML11cd2e7c

Ek het nog nie uitgewerk hoe om die resultate nog te sorteer, so ek sal laat dit vir 'n toekomstige blog post.

</einde>

Skryf in op my blog.

Volg my op Twitter http://www.twitter.com/pagalvin

SharePoint 2010 KeywordQuery en anonieme gebruikers

Ek het om anoniem toegang in my site te toets uit 'n soek web deel wat ek het is die ontwikkeling en geen groot verrassing, dit het nie regtig werk nie.  Anonieme toegang is pretty much altyd 'n uitdaging vir my.

In hierdie geval, die aanvanklike soektog is nie vir een of ander rede.  Ek moet sê dat dit was hardloop, maar dit was nie enige resultate terug.  Ek gebruik die KeywordQuery vir daardie eerste vertoning.

Ek het 'n vinnige soek en hierdie blog post by "sowmyancs"Het redelik vinnig: "SharePoint 2010 Soek: nie enige resultate toon vir anonieme gebruikers?"  Dat die blog inskrywing beskryf die probleem van 'n buite die boks navraag soek perspektief, maar die gedrag was soortgelyk aan myne - dit het gewerk vir bekragtigde gebruikers toegepas word en vir anonieme gebruikers, maar anonieme gebruikers het geen resultate opgelewer nie. 

Ek volg die instruksies en bang!  Dit het my probleem opgelos.  Ek is nie seker watter newe-effekte sal hê, en hulle kan bewys om 'n probleem te wees, maar die kort termyn resultaat is nuttig.

Klik op deur die blog:

image

</einde>

Skryf in op my blog.

Volg my op Twitter http://www.twitter.com/pagalvin

SharePoint 2010 KeywordQuery en die HiddenConstraints Eiendom

Ek het 'n bietjie van die werk te doen met die KeywordQuery voorwerp in SharePoint 2010 en gebruik te maak van die HiddenConstraints eiendom.

Ek het nie 'n onmiddellik nuttige inligting oor die daardie eiendom, so het ek gedink ek sou vinnig neerskryf hoe ek dit gebruik.

Sover ek kan sê, dit is 'n outomatiese is bygevoeg by die navraag nie, sodat jy kan sorteer van die park dit daar en nie bekommerd wees daaroor nie.  As sodanig, dit is net nog 'n navraag (of 'n stel van sleutelwoorde) wysigers wat jy kan tik in die UI wanneer jy 'n navraag soek.  Hier is 'n voorbeeld:

keywordQuery.HiddenConstraints = "omvang:\"Nywerheid " ";

Jy kan ekstra beperkings met 'n ruimte skeiding steken.

keywordQuery.HiddenConstraints = "omvang:\Nywerheid " verdediging ";

Die bogenoemde is in Engels sê, "Hardloop 'n sleutelwoord soek na" verdediging "en voorts, gebruik van die "produksie" omvang.

Hier is 'n ander manier om daarna te kyk:

image

Ek het al met behulp van 'n konteks-afhanklike outomatiese omvang te voorsien op 'n persoonlike web deel.  Wanneer die gebruiker op 'n blad en druk 'n soektog-knoppie, die blad dikteer 'n bepaalde soektog omvang.  Dit is goed so ver.

</einde>

Skryf in op my blog.

Volg my op Twitter http://www.twitter.com/pagalvin

Voorbeeld: XSLT Die skep van HTML href se

Ek is besig met 'n bietjie van die XSL dinge die afgelope tyd en het gedink ek wil 'n voorbeeld vir my toekomstige verwysing en dit mag wees van waarde aan al ons XSLT-ers 'n lewe in die Inter.

Oorweeg die volgende XML:

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

Die volgende XSL-uit sal genereer 'n gesorteer lys van hrefs tabs:

<xsl:sjabloon wedstryd = "FdcSearchTabsCollection is" xml:ruimte = "bewaar">
   
    <!– Die "alles" blad –>
    <a href = "javascript:ViewTab(‘All’)">Kyk na al</1>
   
    <!– Elke individuele blad –>
    <!– Itereer deur al die tabs en vertoon die korrekte  skakels. –>
    <xsl:vir-elke kies = "SearchTab-">
      <xsl:soort kies = "@ SortOrder" />

      …
      <a href = "javascript:ViewTab('{@ TabID}")"><xsl:waarde van kies = "@ Label" /></1>
    </xsl:vir-elke>

    <br /> 
   

   </xsl:sjabloon>

Hier is hoe dit lyk in SharePoint:

SNAGHTML78aa2cb

 

 

</einde>

Skryf in op my blog.

Volg my op Twitter http://www.twitter.com/pagalvin