Donekonečna vnoření <div> Značky a jQuery

To se jeví jako takové podivíne téma, Nejsem si jistý, že to opravdu stojí blogu, Ale to mě ještě nikdy nevadilo, Tak tady to máme Usměj se

Já pracuji na projektu, kde jsem si nějaké údaje z hledání, balení do XML zprávy a pak že XML je nakonec transformován do HTML pomocí XSLT.  Je o hodně jQuery, jeden bit z nich implementuje funkce procházení.  Když klepnete na kartu (Vážně, a <div>), jQuery vyvolá .hide() a jí Ukažte() na různé značky (načtení úvodní stránku stáhne veškerý obsah, takže v tomto případě neexistují žádné postbacks).

Banda před hodinami, Karta přepínání logiky začali chovat chaoticky a ji ukáže jeden z mé karty.  Nakonec dozvěděl jsem se to dolů k tomu, že aplikace internet explorer (nejméně) Myslel, že <div> značky vnořené daleko, mnohem hlubší než určené.Vývojář nástrojů by ukázal:

-<div id = "Tab1Content">
  -<div>
    -<div>
      -<div id = "Tab2Content">
        -<div>
           …………………………
                   </div>  <— konečně ukazuje byl uzavřen až sem!

Tak, Pokud jsem udělal $("# Tab1Content").Skrýt(), Také by skrýt Tab2 a mohl bych nikdy ukázat Tab2 pokud nechtěl také zobrazit Tab1.  Zkopírovat a vložit kód v aplikaci visual studio a to vše div obložení se ukázal pěkně, stejně jako by měl dělat, Takhle:

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

Porazil mou hlavou proti zdi na chvíli a všiml si, že skutečné HTML kódu vytvářel spoustu prázdná <div> značky, jako:

<tělo>

  <div id = "Tab1Content">

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

  </div>

  <div id = "Tab2Content">

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

  </div>

</tělo>

(Výše uvedené je waaaaaaaaaaaay zjednodušili.  Prázdný div značky jsou naprosto platné. Některé z mého <div> značky byly plné obsahu, Ale mnohem víc.  Přišel jsem k poznání že moje <XSL:pro každý> směrnice byly výstupu zkrácené když značky div xsl:pro každý ne ' najít žádná data.  Donutila komentáře HTML do výstupu, Jak je uvedeno:

image

 

Poté, co jsem to udělal, všechny div zákrytu pěkně a moje karta přepínání začala pracovat.

Jako vždy, Doufám, že to pomůže někdo v nouzi.

</Konec>

Přihlásit se na mém blogu.

Za mnou na Twitter na http://www.twitter.com/pagalvin

Quick Fix: "Název typu obsahu '$ Resources:ReportServerResources … nesmí obsahovat … speciální znaky”

Strávila jsem nějaký čas vyčistit SharePoint 2010 web a jedním z témat, vyčištění týká zkorumpovaná / nesprávně nainstalován SQL Server zpráva služby vydání.  Problém vznikl, když jeden z mých kolegů se pokusil Uložit web jako šablonu a potom vytvořit vytvořit nový web založený na této šabloně.  Ukládání operace fungovalo, Ale když se snažila vytvořit nový web, SharePoint zobrazena následující chybová zpráva:

Chyba

Název typu obsahu '$ Resources:ReportServerResources,DataSourceContentTypeName;"nesmí obsahovat: \ / : * ? “ # % < > { } | ~ & , dvě po sobě jdoucí období (..), nebo speciální znaky, jako například tabulátor.

A tady je obrazovka:

 

image

Měl se podívat na typy obsahu webu a našel tohle:

image

Tyto typy obsahu jsou jasně nezdravé.

Zdá se, že tento problém tak hodně Internets a nezdá být jediné konsenzus o tom, jak to vyřešit.  Našla jsem šikovný tabulka, která mapované názvy špatný typ obsahu na dobré názvů typu obsahu zde: http://social.technet.microsoft.com/Forums/en-ZA/sharepoint2010programming/thread/cb03e866-8184-4943-acfe-cafffa1b8b7a.  Já je aktualizovat ručně tatínka:

image

(BrightStarr v názvu je pochopitelně nepovinné, Ale to nemůže zranit Usměj se )

To mi vytvořit novou šablonu a nic nezlomil na jiných webech, včetně něco PerformancePoint Server pracovali naprosto odlišné skupiny lidí.  Pak jsem byl schopen vytvořit nový web šablony.  Úspěch!

Nejsem si jistý, že se jedná 100% řešení, Ale to mě a každého, kdo přes to otravné chyby.  Jestli najdu něco nového, Budu účtovat o aktualizaci.  Má nervozita pramení z faktu, že tyto názvy by neměl být v nepořádku v prvé řadě a stanovením zobrazované jméno, Vnitřní název nedotýkám. 

</Konec>

Přihlásit se na mém blogu.

Za mnou na Twitter na http://www.twitter.com/pagalvin

Jednou z příčin pro "tvůrce této chyby neurčil důvod.”

Dělala jsem spoustu práce s SharePoint search v poslední době a konkrétně třídy KeywordQuery, vlastnosti a metody.

Pokud chcete vrátit výsledky nad rámec obvyklých podezřelých sadu výsledků (naleznete zde), Přidat do kolekce SelectedProperties, stejně jako v:

myKeywordQuery.SelectProperties.Add("xyzzy");

Mnohokrát děkuji a tip klobouk Corey Roth a Tato nesmírně užitečné blogu (http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2008/02/19/how-to-use-the-moss-enterprise-search-keywordquery-class.aspx)

V mém případě, "xyzzy" není ve skutečnosti spravovanou vlastnost.  Když jsem přidal k SelectedProperties stejně, SharePoint hodil jeden z mé oblíbené někdy runtime výjimky:

"Tvůrce této chyby neurčil důvod."

Obzvlášť líbí velké "R" v důvod.  Zní to pro mě jako.ČISTÝ ekvivalent"Nemám žádné ústa, a musí křičet.”

</Konec>

Přihlásit se na mém blogu.

Za mnou na Twitter na http://www.twitter.com/pagalvin

Užitečnou: Výchozí výsledky hledání KeywordQuery

Když vyvoláte Execute() Metoda na KeywordQuery, můžete vytvořit ResultTable založené na ResultType.RelevantResults.  Tento fragment kódu, mám na mysli, ilustruje:

ResultTableCollection resultsTableCollection = myKeywordQuery.Execute();

ResultTable searchResultsTable = resultsTableCollection[ResultType.RelevantResults];

Výsledná tabulka bude mít následující sloupce informací: 

WorkId
Pořadí
Titul
Autor
Velikost
Cesta
Popis
Zápis
Název serveru
CollapsingStatus
HitHighlightedSummary
HitHighlightedProperties
ContentClass
IsDocument
PictureThumbnailURL
ServerRedirectedURL

Odvozené tento seznam ze serveru SharePoint 2010 prostředí, Enterprise edition.  Doufejme, že se bude hodit k někomu v budoucnosti.

</Konec>

Přihlásit se na mém blogu.

Za mnou na Twitter na http://www.twitter.com/pagalvin

Jedním z důvodů pro: "Nepodařilo se extrahovat soubor cab v řešení”

Při práci na webové části visual studio projektu dnes, Jsem udělal menší re-org některých souborů k uvedení do složky _layouts jako součást procesu implementace. Konkrétně, Přejmenována js soubor z "TypeAhead.js" na "TypeAhead(staré).JS"  Mám v plánu odstranit, jakmile jeho nástupce "TypeAhead.js" ukáže jako správná.  Vypadalo to jako to:

image

Tento problém se sadou visual studio okamžitě způsobil, když se snažil zavést projekt:

Došlo k chybě v kroku nasazení přidat řešení: Nepodařilo se extrahovat soubor cab v řešení.

Ukazuje se, že by ani dát závorku v názvech souborů.  Jsem odstranil parens a že ten problém vyřešil.

</Konec>

Přihlásit se na mém blogu.

Za mnou na Twitter na http://www.twitter.com/pagalvin

Ještě více jQuery–Změna velikosti obrázku příklad

Zdědil jsem webovou část ze staré dodavatele klienta a má problém s velikostí obrazu.  Obrazy by mělo být 60×50 Ale z nějakého zvláštního důvodu, původní dodavatel je donucena 42×42, tak vypadají pošramoceného:

 

Dobrý obrázek

Špatný obrázek

Tady je přirážka (poněkud zjednodušené):

<Tabulka class = "rozšířené outlook">
  <závit>
    <TR>
      <Čt  Šířka = "100′>3 Úterý</Čt>
    </TR>
  </závit>

  <tbody>
    <TR class = "prognózy">
      <Šířka TD = "100′>
        <ul>
          <li class = "vysoká">Vysoká: 72&deg;F</li>
          <li class = "nízkým">Nízká: 44&deg;F</li>
          <li class = "stavu">Slunečno
            <img src =’
http://deskwx.WeatherBug.com/images/Forecast/icons/Localized/60×50/EN/trans/cond007.PNG’ Šířka ='42’ Výška ='42’ ALT =” />
          </li>
        </ul>
      </TD>
    </TR>

  </tbody>

</Tabulka>

Všimněte si že i když Cesta k obrázku, samotné se zobrazí odpovídající rozměr (60×50) původní dodavatel ji donutila 42×42.  Proč?  Šílené.

Každopádně, Chtěl jsem rychlé a snadné řešení této otázky a já se obrátil k jQuery.  Trik byl k hledání vhodného <IMG> značky.  Nechtěl jsem si ty fóry s jiné značky img (z nichž je mnoho).  Tento bit jQuery trik:

<skript typ = "text/javascript" src ="http://AJAX.googleapis.com/AJAX/libs/Jquery/1.5/Jquery.min.js"></skript>

<skript typ = "text/javascript">
     $(dokument).připraven(funkce () {

         $(' li.condition > img').Každý(funkce (Rejstřík, položka)
           
{
             $(položka).CSS("Šířka", "60"); 
             $(položka).CSS("výškou", "50");
            });
     }); // Při načítání dokumentu
</skript>

Tento kousek kódu najde kolekci <li> značky, jejichž třída je "stav" a <IMG> děti.  Pak je to všechno projde.  Pracoval jako kouzlo.

Možná by jej zefektivnit, Ale já jsem nikdy nebyla druh unix chlapíka, který vyřešil π do 18 přesnost čísel pomocí sed a awk a já nejsem takový pokud jQuery buď chlap Usměj se.

</Konec>

Přihlásit se na mém blogu.

Za mnou na Twitter na http://www.twitter.com/pagalvin

Při analýze XML s LINQ

Zde je příklad rychlé pomocí LINQ analyzovat některé  XML a vystoupit na sladkost, sladký atributy v něm.

Tady je chci zpracovat XML:

<?XML verze = "1.0" kódování = "utf-8" ?>
<DeafultConfigurationSets>
  <PageLayouts>

    <PageLayout jméno = "xyzzy">
      <Tabulátory>
        <Karta TabOrder = "1" Jmenovku záložky = "x" SharePointContentType = "a" AdditionalConstraints = "ac1" />
        <Karta TabOrder = "2" Jmenovku záložky "y =" SharePointContentType = "b" AdditionalConstraints = "ac2" />
      </Tabulátory>
    </PageLayout>

    <PageLayout jméno = "xyzzy2">
      <Tabulátory>
        <Karta TabOrder = "100" Jmenovku záložky = "x" SharePointContentType = "a" AdditionalConstraints = "ac1" />
        <Karta TabOrder = "101" Jmenovku záložky "y =" SharePointContentType = "b" AdditionalConstraints = "ac2" />
        <Karta TabOrder = "103" Jmenovku záložky = "z" SharePointContentType = "c" AdditionalConstraints = "ac3" />
      </Tabulátory>
    </PageLayout>

  </PageLayouts>
</DeafultConfigurationSets>

Chci vybudovat si některé karty za běhu pomocí analýzy výše.  Moje karty závisí na rozložení stránky.  Pokud rozložení stránky mé jméno je "xyzzy2" pak chci karty 100, 101 a 103 (karty v <PageLayout jméno = "xyzzy2">).

Tady je LINQ, dělá to:

var allTabs =
              od p v
                  XElement.Parse(theXmlToParse).
                 
Prvky("PageLayouts").
                  Prvky("PageLayout")
              kde (p.Attribute("název").Value.Equals("xyzzy2"))
              od m v p.Elements("Karty").Prvky("Kartu")
              Vybrat m;

          Results.text = string.Prázdný;

          foreach (var aTab v allTabs)
          {
              Results.text =
                  "Pořadí prvků: " + aTab.Attribute("TabOrder").Hodnota + " |" +
                  "Popisek záložky: " + aTab.Attribute("Jmenovku záložky").Hodnota + " | " +
                  "SharePointContentType: " + aTab.Attribute("SharePointContentType").Hodnota + " | " +
                  "AdditionalConstraints: " + aTab.Attribute("AdditionalConstraints").Hodnota + "r";
          }

V výše uvedeného, Proměnná "theXmlToParse" je proměnné řetězce, Můžete však použít zatížení() metoda v proudu, pokud se vám líbí.

"Výsledky" je štítek na webovém formuláři a když tento kód, Vypadá to jako to:

SNAGHTML11cd2e7c

Jsem jak řadit výsledky zatím nevychází, Tak já to nechám pro budoucí blogu.

</Konec>

Přihlásit se na mém blogu.

Za mnou na Twitter na http://www.twitter.com/pagalvin

SharePoint 2010 KeywordQuery a anonymní uživatelé

Povolit anonymní přístup v mých stránek k testování vyhledávací webová část, kterou jsem byl vývoj a k žádné velké překvapení, docela to nefungovalo.  Anonymní přístup je téměř vždy pro mě výzvou.

V tomto případě, počáteční hledání nebyl spuštěn z nějakého důvodu.  Měl říct, že to byl běží, ale to se nevrací žádné výsledky.  Používám pro počáteční zobrazení KeywordQuery.

Udělal jsem rychlé hledání a tuto položku blogu pomocí"sowmyancs"přišel poměrně rychle: “SharePoint 2010 Hledat: není zobrazeno žádné výsledky pro anonymní uživatele?”  Že blogu popisuje problém z out of box klíčové hledání perspektivy, ale chování byl podobný mně – pracoval pro ověřené uživatele a pro anonymní uživatele, anonymní uživatelé ale žádné výsledky. 

Sledoval jsem instrukce a Bang!!  To vyřešit můj problém.  Nejsem si jistý, co vedlejší účinky, které to bude mít se může ukázat a být problém, Ale krátkodobé výsledkem je užitečné.

Klepněte na prostřednictvím blogu:

image

</Konec>

Přihlásit se na mém blogu.

Za mnou na Twitter na http://www.twitter.com/pagalvin

SharePoint 2010 KeywordQuery a HiddenConstraints majetek

Dělala jsem trochu práce s KeywordQuery objekt služby SharePoint. 2010 a při využití HiddenConstraints Vlastnost.

Nenašel jsem žádné bezprostředně užitečné informace o této vlastnosti, Myslel jsem, že by rychle poznamenat jak používám už to.

Jak mohu říci, Toto je automatické omezení, které jsou do dotazu tak, že můžete řadit parku to tam a nestarat se o to.  Jako takové, je to jen další klíčové slovo (nebo sadu klíčových slov) a modifikátorů, které můžete zadat do uživatelského rozhraní při hledání pomocí klíčových slov.  Zde je příklad:

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

Můžete přidat další omezení s oddělovačem mezera.

keywordQuery.HiddenConstraints = "obor:\"Industry" obrana";

Na výše uvedené se říká v angličtině, "spustit dotaz na klíčové slovo hledat"obrana"a dále, Použijte rozsah "Průmysl".

Tady je další způsob, jak na to:

image

Používala jsem ho poskytnout automatický rozsah kontextově závislé na vlastní webové části.  Když uživatel klepne na kartu a klepne na tlačítko hledání, na kartě diktuje konkrétní obor.  Funguje to dobře tak daleko.

</Konec>

Přihlásit se na mém blogu.

Za mnou na Twitter na http://www.twitter.com/pagalvin

Příklad: XSLT vytváření HTML Atribut Href

Jsem dělal poslední dobou trochu XSL věci a myslel, že bych dal jsem dohromady vzorek pro mé budoucí referenci a to může být pro nás všechny hodnotu XSLT nabízejí vydělat na živobytí v internets.

Zvažte následující XML:

<FdcSearchTabsCollection Count = "2">
  <SearchTab Label = "průmysl" SortOrder = "00" Label = "Průmyslem" SearchConstraints = "contenttype:Průmysl" TabID = "831b2a74-98c4-4453-8061-86e2fdb22c63" />
  <SearchTab Label = "praxe" SortOrder = "01" Label = "Praxe" SearchConstraints = "contenttype:PracticeGroups" TabID = "678e206b-6996-421f-9765-b0558fe1a9c0" />
</FdcSearchTabsCollection>

Následující úryvek XSL vytvoří seřazený seznam karet značky HREF:

<XSL:Šablona shoda = "FdcSearchTabsCollection" XML:prostor = "zachovat">
   
    <!– "Vše" Tabulátor –>
    <a href = "javascript:ViewTab("All")">Zobrazit vše</a>
   
    <!– Každé jednotlivé karty –>
    <!– Iterovat všechny karty a zobrazit správně  odkazy. –>
    <XSL:pro každý select = "SearchTab">
      <XSL:řazení select="@SortOrder"/>

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

    <BR /> 
   

   </XSL:Šablona>

Zde je, jak to vypadá v SharePoint:

SNAGHTML78aa2cb

 

 

</Konec>

Přihlásit se na mém blogu.

Za mnou na Twitter na http://www.twitter.com/pagalvin