Donekonečna vnorenia <DIV> Značky a jQuery

To sa zdá ako také podivín tému, Nie som si istý, je to naozaj stojí za blogovanie o, ale že nebol nikdy zastavený ma pred, tak tady úsmev

Som pracovať na projekt, kde I 'm ťahanie niektoré údaje z vyhľadávania, balenie je do XML správ a potom že XML sa nakoniec premení HTML pomocou XSLT.  Existuje veľa jQuery, jeden bit, ktorý implementuje niektoré tabování funkcie.  Keď kliknete na kartu (naozaj, a <DIV>), jQuery vyvolá .hide() a .show() na rôznych divs (úvodnú stránku zaťaženie prevezme všetky obsah, takže neexistujú žiadne spätných odoslaní v tomto prípade).

Pár hodín pred, kartu prepínanie logika začali správať nevyspytateľne a to by ukázať jednu z mojich záložiek.  Nakoniec sledoval som to tým, že program internet explorer (aspoň) myslel, že <DIV> Tagy vnorené ďaleko, oveľa hlbšie, než sa plánovalo.Paneli nástrojov vývojára by Ukázať:

-<div id = "Tab1Content">
  -<DIV>
    -<DIV>
      -<div id = "Tab2Content">
        -<DIV>
           …………………………
                   </DIV>  <— konečne ukazuje, že bola uzavretá celú cestu dole tu!

Takže, Ak som to urobil $("#Tab1Content").Skryť(), By tiež skryť 2 a nikdy by mohla ukázať 2 Ak nemal tiež ukazujú Tab1.  Skopírovať a vložiť kód do visual studio a to ukázal všetky div obloženia sa pekne, rovnako ako oni mali robiť, Hľadáte takhle:

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

Biť hlavou o stenu na chvíľu a všimol si, že v skutočnej HTML kód bol vytvára veľa prázdnych <DIV> Tagy, ako:

<telo>

  <div id = "Tab1Content">

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

  </DIV>

  <div id = "Tab2Content">

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

  </DIV>

</telo>

(Vyššie uvedené je waaaaaaaaaaaay nedbalo.  Prázdny div tagy sú úplne platné. Niektoré z mojich <DIV> Tagy boli plné obsahu, ale mnoho ďalších neboli.  Prišiel som k poznaniu, že moja <XSL:pre každý> smernice boli vyžarujúce krátky div Tagy kedy xsl:pre každú nemali "nájsť žiadne údaje.  Som nútený do výstupného HTML komentár, ako je uvedené:

image

 

Potom, čo som to urobil, všetky div postavili pekne a môj kartu prepínanie začal pracovať.

Ako vždy, Dúfam, že to pomôže niekto v núdzi.

</koniec>

Vyberajte môj blog.

Nasledujte ma na stebėtų na http://www.twitter.com/pagalvin

Quick Fix: "Typ obsahu názov"$ zdrojov:ReportServerResources … nemôže obsahovať … špeciálne znaky”

Bol som stráviť nejaký čas vyčistenie lokality SharePoint 2010 lokality a jednou z otázok, čistenie vzťahuje poškodený / nesprávne nainštalované zostavy služby SQL Server problém.  Problém vznikol, keď jeden z mojich kolegov snažil uložiť lokalitu ako šablónu a potom vytvoriť vytvoriť nové stránky založené na danej šablóne.  Uložiť prevádzku pracoval pokutu, ale keď ona sa snažil vytvoriť novú lokalitu, SharePoint zobrazuje nasledovné chybové hlásenie:

Chyba

Názov typu obsahu "$ zdrojov:ReportServerResources,DataSourceContentTypeName;"nemôže obsahovať: \ / : * ? “ # % < > { } | ~ & , dve po sebe idúce obdobia (..), alebo špeciálne znaky, ako napríklad kartu.

Tu je obrazovka spp:

 

image

Mal pozrieť na typy obsahu na lokalite a našiel:

image

Tieto typy obsahu sú jasne nezdravé.

Táto otázka sa zdá prísť hodně na internetové a tam sa nezdá byť jednotný konsenzus o tom, ako ho vyriešiť.  Nájsť tabuľku šikovné, priradených názvov zlý typ obsahu dobrý obsah typ mien tu: http://social.technet.microsoft.com/Forums/en-ZA/sharepoint2010programming/thread/cb03e866-8184-4943-acfe-cafffa1b8b7a.  Som ručne aktualizovať ich thusly:

image

(BrightStarr v názve je samozrejme voliteľný, ale prevýšenia zranil úsmev )

To mi dovolené vytvoriť novú šablónu a nemal porušiť čokoľvek na iných stránkach, vrátane niektoré veci PerformancePoint Server, ktoré pracovali úplne inú skupinu ľudí.  Bol som potom schopný vytvoriť novú lokalitu centra v šablóne.  Úspech!

Nejsem jistý je to 100% roztok, ale to ma a všetky zúčastnené strany v minulosti to otravné chyby.  Ak som nájsť niečo nové, Uvidíme post aktualizáciu.  Môj nervozita vyplýva zo skutočnosti, že tieto názvy nemal byť zle na prvom mieste a stanovením zobrazované meno, Som nebudete dotýka interným názvom. 

</koniec>

Vyberajte môj blog.

Nasledujte ma na stebėtų na http://www.twitter.com/pagalvin

Jedna príčina pre "tvorca Táto porucha nešpecifikoval dôvod.”

Bol som robí veľa práce s SharePoint vyhľadávanie v poslednej dobe a špeciálne triedy KeywordQuery, vlastnosti a metódy.

Ak chcete výslednú množinu výsledkov nad rámec obvyklý podozrivé (pozri tu), môžete pridať do kolekcie SelectedProperties, rovnako ako v:

myKeywordQuery.SelectProperties.Add("xyzzy");

Mnohé vďaka a tip klobúk na Corey Roth a Táto nesmierne užitočná blog post (http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2008/02/19/how-to-use-the-moss-enterprise-search-keywordquery-class.aspx)

V mojom prípade, "xyzzy" nie je skutočne spravovaných vlastnosť.  Keď som ho pričlenilo k SelectedProperties napriek tomu, SharePoint hodil jeden z mojich obľúbených niekedy runtime výnimky:

"Tvorca Táto porucha nešpecifikovala dôvod."

I predovšetkým ako veľké "R" v dôvod.  To znie mi ako ekvivalent .net"Nemám žiadne úst, a I musia scream.”

</koniec>

Vyberajte môj blog.

Nasledujte ma na stebėtų na http://www.twitter.com/pagalvin

Užitočný odkaz: Predvolené je výsledkom KeywordQuery Search

Keď vyvolať spustiť() metóda na KeywordQuery, môžete vytvoriť ResultTable založené na ResultType.RelevantResults.  Tento kód úryvok ilustruje, čo znamená:

ResultTableCollection resultsTableCollection = myKeywordQuery.Execute();

ResultTable searchResultsTable = resultsTableCollection[ResultType.RelevantResults];

Výsledná tabuľka bude mať tieto stĺpce s informáciami: 

Identifikácia
Hodnosť
Hlava
Autor
Veľkosť
Cesta
Popis
Písať
SiteName
CollapsingStatus
HitHighlightedSummary
HitHighlightedProperties
ContentClass
IsDocument
PictureThumbnailURL
ServerRedirectedURL

Tento zoznam I pochádzajúce z lokality SharePoint 2010 životné prostredie, Enterprise edition.  Dúfajme, že to bude užitočné pre niekoho v budúcnosti.

</koniec>

Vyberajte môj blog.

Nasledujte ma na stebėtų na http://www.twitter.com/pagalvin

Jedným z dôvodov: "Neporadilo sa extrahovať súbor cab v roztoku”

Pri práci na program visual studio webová časť projektu dnes, Urobil menšie re-org niektoré súbory umiestniť do priečinka _layouts ako súčasť procesu nasadenia. Osobitne, Premenovaný súbor .js z "TypeAhead.js" na "TypeAhead(staré).js"  Mám v pláne ju odstrániť ako jej nástupca "TypeAhead.js" dokáže správne.  To vyzeralo, ako to:

image

To okamžite spôsobil problém s programu visual studio, keď som sa pokúsil rozvinúť projektu:

Vyskytla sa chyba v nasadení kroku pridať riešenie: Neporadilo sa extrahovať súbor cab v roztoku.

Ukazuje sa, že by mala dať zátvorka nie v názvoch súborov.  I vyňal moc hlavy a že vyriešený problém.

</koniec>

Vyberajte môj blog.

Nasledujte ma na stebėtų na http://www.twitter.com/pagalvin

Ešte viac jQuery–Ak chcete zmeniť veľkosť príklad obrázka

Som zdedil webovú časť od klienta stará dodávateľa a má obraz veľkosti problém.  Obrázky by mali byť 60×50 ale z nejakého zvláštneho dôvodu, pôvodný dodávateľ nútený do 42×42, tak vyzerajú rozmliaždeniu:

 

Dobrý obraz

Zlý obraz

Tu je značky (trochu zjednodušené):

<Tabuľka class = "Rozšírená-outlook">
  <thead>
    <TR>
      <th  šírka = 100′>3 Utorok</th>
    </TR>
  </thead>

  <TBODY>
    <TR class = "predpoveď">
      <TD šírka = 100′>
        <ul>
          <li class = "vysoká">Vysoká: 72&deg;F</li>
          <li triedy = "nízke">Nízka: 44&deg;F</li>
          <li triedy = "stav">Slnečný
            <img src =’
http://deskwx.weatherbug.com/images/Forecast/icons/localized/60×50/EN/trans/cond007.png’ Šírka = "42’ Výška = "42’ ALT =” />
          </li>
        </ul>
      </TD>
    </TR>

  </TBODY>

</Tabuľka>

Všimnite si, že aj keď cestu k samotnému obrázku ukazuje správny rozmer (60×50) pôvodný dodávateľ nútený 42×42.  prečo?  bláznivý.

Každopádne, Chcel som rýchle a jednoduché riešenie tohto problému a obrátil som sa na jQuery.  Trik bol na vyhľadanie všetkých vhodných <IMG> Tagy.  Nechcel som muck asi s inými img Tagy (ktoré existuje veľa).  Tento bit jQuery urobil trik:

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

<skript typ = "text/javascript">
     $(dokument).pripravený(Funkcia () {

         $("li.condition > img ").každý(Funkcia (index, položka)
           
{
             $(položka).CSS("Šírka", "60"); 
             $(položka).CSS("výška", "50");
            });
     }); // na dokument zaťaženie
</skript>

Že trochu kódexu zistí kolekcia <li> Tagy ktorého trieda je "stav" a <IMG> deti.  Potom vykonáva iterácie, cez to všetko.  Pracoval ako kúzlo.

Pravdepodobne by mohla zjednodušenie je, ale nikdy som bol druh unix chlap, ktorý vyriešil π na 18 číslice presnosť použitia sed a awk a já nejsem tohto druhu, ak buď chlap jQuery úsmev.

</koniec>

Vyberajte môj blog.

Nasledujte ma na stebėtų na http://www.twitter.com/pagalvin

Parsovanie XML s LINQ

Tu je rýchly príklad pomocou LINQ analyzovať niektoré  XML a získať na sladké, sladké atribúty v ňom.

Tu je chcem na syntaktickú analýzu XML:

<?XML verzia = "1,0" encoding = "utf-8" ?>
<DeafultConfigurationSets>
  <PageLayouts>

    <PageLayout meno = "xyzzy minového">
      <Karty>
        <Karta TabOrder = "1" TabLabel = "x" SharePointContentType = "_FITTED" AdditionalConstraints = "ac1" />
        <Karta TabOrder = "2" TabLabel = "y" SharePointContentType = "b" AdditionalConstraints = "ac2" />
      </Karty>
    </PageLayout>

    <Názov PageLayout = "xyzzy2">
      <Karty>
        <Karta TabOrder = "100" TabLabel = "x" SharePointContentType = "_FITTED" AdditionalConstraints = "ac1" />
        <Karta TabOrder = "101" TabLabel = "y" SharePointContentType = "b" AdditionalConstraints = "ac2" />
        <Karta TabOrder = "103" TabLabel = "z" SharePointContentType = "c" AdditionalConstraints = "ac3" />
      </Karty>
    </PageLayout>

  </PageLayouts>
</DeafultConfigurationSets>

Chcem vybudovať niektoré karty za behu analyzoval vyššie.  Moje karty závisia od rozloženia strany.  Ak je môj rozvrhnutie názov "xyzzy2" potom chcem zapnúť karty 100, 101 a 103 (karty v <Názov PageLayout = "xyzzy2">).

Tu je LINQ to:

var allTabs =
              z p v
                  XElement.Parse(theXmlToParse).
                 
Prvky("PageLayouts").
                  Prvky("PageLayout")
              kde (p.Attribute("názov").Value.Equals("xyzzy2"))
              m v p.Elements("Listy").Prvky("Tab")
              Vyberte m;

          Results.Text = reťazec.Prázdne;

          foreach (var aTab v allTabs)
          {
              Results.Text =
                  "Poradie: " + aTab.Attribute("TabOrder").Hodnota + " |" +
                  "Tab Label: " + aTab.Attribute("TabLabel").Hodnota + " | " +
                  "SharePointContentType: " + aTab.Attribute("SharePointContentType").Hodnota + " | " +
                  "AdditionalConstraints: " + aTab.Attribute("AdditionalConstraints").Hodnota + "r";
          }

Vo vyššie uvedenom, Premenná "theXmlToParse" je reťazec premenná, ale môžete použiť zaťaženie() metóda na prúd Ak sa vám páči.

"Výsledky" je štítok vo webovom formulári a keď tento kód spustí, Vyzerá to, že to:

SNAGHTML11cd2e7c

Ešte pracoval ako triediť výsledky zatiaľ, Takže nechám, že pre budúce blogu.

</koniec>

Vyberajte môj blog.

Nasledujte ma na stebėtų na http://www.twitter.com/pagalvin

SharePoint 2010 KeywordQuery a anonymných používateľov

Som v mojej stránky na skúšku, Hľadať webovú časť som bol vývoj a žiadne veľké prekvapenie povolený anonymný prístup, to nebolo dosť práce.  Anonymný prístup je skoro vždy pre mňa výzvou.

V tomto prípade, počiatočné vyhľadávanie nebol spustený z nejakého dôvodu.  Mal by som povedať, že bola beží, ale nie vracal žiadne výsledky.  Som pomocou KeywordQuery že počiatočné zobrazenie.

Urobil som rýchle vyhľadávanie a tento blog post"sowmyancs"prišiel pomerne rýchlo: “SharePoint 2010 Hľadať: nezobrazuje žiadne výsledky pre anonymných používateľov?”  Že blog položka popisuje problém z von z pohľadu poľa kľúčové slovo Hľadať, ale správanie bolo podobné ako moje – fungovalo to pre overených používateľov a pre anonymných používateľov, ale anonymných používateľov dostal žiadne výsledky. 

Sledoval som inštrukcie a bang!  To vyriešiť môj problém.  Nie som si istý, čo to bude mať vedľajšie účinky a oni môžu dokázať byť problém, ale krátkodobo výsledok je užitočné.

Kliknite na cez blog:

image

</koniec>

Vyberajte môj blog.

Nasledujte ma na stebėtų na http://www.twitter.com/pagalvin

SharePoint 2010 KeywordQuery a vlastnosť HiddenConstraints

Bol som robiť trochu práce s KeywordQuery objekt v lokalite SharePoint 2010 a využívanie HiddenConstraints nehnuteľnosti.

Nepodarilo nájsť okamžite užitočné informácie o tomto majetku, tak som myslel bych rýchlo zapisovať ako som bol s použitím ho.

Ako môžete povedať, je to automatické obmedzenie pridané do dotazu tak, že môžete zoradiť Park to tam a nestarat sa o to.  Ako taký, to je len ďalšie slovo (alebo sadu kľúčových slov) a modifikátory, ktoré môžete zadať do UI keď budeš robiť vyhľadávanie kľúčových slov.  Tu je príklad:

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

Môžete pridať ďalšie obmedzenia s priestor oddeľovač.

keywordQuery.HiddenConstraints = "rozsah:\"Industry" obrany";

Vyššie uvedené je povedať v angličtine, "spustenie dotazu kľúčové slovo hľadá"obrany"a ďalej, použitie rozsahu "Priemysel".

Tu je ďalší spôsob, ako na to pozerať:

image

Bol som pomocou to poskytnúť kontext-dependentný automatické rozsahu na vlastnej webovej časti.  Keď používateľ klikne na kartu a klikne na tlačidlo Hľadať, karte určuje rozsah vyhľadávania.  Funguje to dobre tak ďaleko.

</koniec>

Vyberajte môj blog.

Nasledujte ma na stebėtų na http://www.twitter.com/pagalvin

Príklad: XSLT vytváranie HTML Href je

Bol robí trochu XSL veci v poslednej dobe som a myslel by som dal dohromady vzorky pre moju budúce použitie a ktoré možno hodnotu pre všetkých z nás XSLT-ers obživy v internety.

Zvážte nasledujúce XML:

<FdcSearchTabsCollection počet = "2">
  <SearchTab Label = "priemysel" Parameter zoradenie = "00" Label = "Priemysel" SearchConstraints = "contenttype:Priemysel" TabID = "831b2a74-98c4-4453-8061-86e2fdb22c63" />
  <SearchTab Label = "praktiky" Parameter zoradenie = "01" Label = "Postupy" SearchConstraints = "contenttype:PracticeGroups" TabID = "678e206b-6996-421f-9765-b0558fe1a9c0" />
</FdcSearchTabsCollection>

Nasledujúci úryvok XSL vytvorí usporiadaný zoznam kariet hrefs:

<XSL:Šablóna zápas = "FdcSearchTabsCollection" XML:priestor = "zachovanie">
   
    <!– Všetky"" kartu –>
    <href = "javascript:ViewTab("Všetky")">Zobraziť všetky</a>
   
    <!– Každá karta –>
    <!– Iteráciou cez všetky karty a zobrazenie správne  odkazy. –>
    <XSL:pre každý vybrať = "SearchTab">
      <XSL:triedenie select="@SortOrder"/>

      …
      <href = "javascript:ViewTab(‘{@TabID}’)"><XSL:hodnotu z select="@Label"/></a>
    </XSL:pre každý>

    <br /> 
   

   </XSL:šablóny>

Tu je ako to vyzerá v lokalite SharePoint:

SNAGHTML78aa2cb

 

 

</koniec>

Vyberajte môj blog.

Nasledujte ma na stebėtų na http://www.twitter.com/pagalvin