Imbricarea la nesfârşit <div> Tag-uri şi jQuery

Acest lucru pare a fi un astfel de subiect de aiurit, Nu sunt sigur că merită cu adevărat blogging-ul despre, dar că niciodată nu a oprit mine înainte, Deci, aici vom merge Zâmbet

Am de lucru un proiect în cazul în care eu sunt trăgând unele date dintr-o căutare, ambalare-l într-un mesaj XML şi apoi că XML este transformat în cele din urmă în HTML prin intermediul XSLT.  Există o mulţime de jQuery implicate, un pic de care implementeaza anumite funcţionalităţi tabbing.  Când faceţi clic pe o filă (chiar, o <div>), jQuery invocă .hide() şi .show() pe diverse divs (pagină iniţială de încărcare descărcări toate conţinut, astfel încât nu există nici o postback în acest caz).

O grămadă de ore în urmă, fila logica de comutare a început să se comporte haotic şi aceasta nu s-ar arăta unul de meu file.  Am în cele din urmă urmărite l până la faptul că internet explorer (cel puțin) crezut că <div> Tag-uri imbricate departe, mult mai profunde decât destinate.Bara de instrumente producător ar arăta:

-<div id = "Tab1Content">
  -<div>
    -<div>
      -<div id = "Tab2Content">
        -<div>
           …………………………
                   </div>  <— în cele din urmă arătând că a fost închis tot drumul în jos aici!

Deci, dacă am făcut-o $("#Tab1Content").ascunde(), Am, de asemenea, s-ar ascunde Fila2 şi ar putea arăta niciodată Fila2 dacă nu arăt, de asemenea, Fila1.  Am copiat şi inserat codul în visual studio şi ea a arătat toate div garnitură până frumos, la fel ca ei ar fi trebuit să faci, în căutarea de genul asta:

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

Am batut capul meu de perete pentru un timp şi am observat că în real HTML codul a fost generatoare de o mulţime de gol <div> Tag-uri, ca:

<corpul>

  <div id = "Tab1Content">

    <div id = "row1" />
    <div id = "rînd2" />

  </div>

  <div id = "Tab2Content">

    <div id = "row1" />
    <div id = "rînd2" />

  </div>

</corpul>

(De mai sus este waaaaaaaaaaaay simplificat.  Gol div Tag-uri sunt complet valide. Unele dintre meu <div> Tag-uri au fost plin de conţinut, dar mult mai multe nu au fost.  Am venit la realizarea că meu <XSL:pentru fiecare> Directivele au fost emit scurt-forma div Tag-uri atunci când xsl:nu pentru fiecare "găseşte orice date.  Am forţat un comentariu HTML în ieşire, ca:

image

 

După ce am făcut-o, div aliniat frumos şi fila mea de comutare a început să lucreze.

Ca întotdeauna, Sper că acest lucru ajută pe cineva într-o priză.

</scop>

Aboneaza-te la blog-ul meu.

Urmaţi-mă pe Twitter, la http://www.twitter.com/pagalvin

Iute Fix: "Numele de tipul de conţinut" resurse$:ReportServerResources … nu pot conţine … caractere speciale”

-Am fost de cheltuieli ceva timp curăţirea un SharePoint 2010 site-ul şi una dintre problemele Curăţire se referă la un corupt / incorect instalat SQL Server raport Services problemă.  Problema a apărut când unul dintre colegii mei au încercat să salvaţi un site ca un şablon şi apoi creaţi creaţi un nou site bazat pe acel şablon.  Salvare operațiunea worked fin, dar atunci când ea a încercat să creeze noul site, SharePoint afişează următorul mesaj de eroare:

Eroare

Numele tipului de conţinut "resurse $:ReportServerResources,DataSourceContentTypeName;' nu pot conţine: \ / : * ? “ # % < > { } | ~ & , două mandate consecutive (..), sau caractere speciale cum ar fi un tab.

Aici este un capac de ecran:

 

image

Am avut o privire la tipuri de conţinut în site-ul şi a întemeia this:

image

Aceste tipuri de conţinut sunt în mod clar nesănătoase.

Această problemă pare a veni sus o mulţime de pe Internet şi acolo nu pare a fi un consens unic on cum la spre solve it.  Am găsit un tabel la îndemână care mapat numele tipului de conţinut rău tip bun conţinut nume aici: http://social.technet.microsoft.com/Forums/en-ZA/sharepoint2010programming/thread/cb03e866-8184-4943-acfe-cafffa1b8b7a.  Am actualizat le manual thusly:

image

(BrightStarr în numele este, evident, opţional, dar nu doare Zâmbet )

Acest lucru allowed eu la spre a crea un nou şablon şi nu rupe nimic pe alte site-uri, inclusiv unele chestii PerformancePoint Server care un grup complet diferite de oameni au fost de lucru pe.  Am fost apoi capabil să creeze un site nou pe şablon.  Succesul!

Nu sunt sigur că aceasta este o 100% soluţie, dar el luat eu şi toţi cei implicaţi trecut acest lucru enervant eroare.  Dacă am găsi nimic nou, Voi posta o actualizare.  Nervozitate meu provine din faptul că aceste nume nu ar trebui să fi greşit în primul rând şi prin fixarea numele afişat, Eu nu sînt atingeţi numele intern. 

</scop>

Aboneaza-te la blog-ul meu.

Urmaţi-mă pe Twitter, la http://www.twitter.com/pagalvin

O cauză pentru "creatorul această anomalie a făcut nu specificaţi un motiv.”

Am făcut o mulţime de lucru cu SharePoint caută în ultima vreme şi în mod specific clasa KeywordQuery, Proprietăţi şi metode.

Dacă doriţi setul de rezultate în returna rezultate dincolo suspecţii de obicei (a se vedea aici), Adăugaţi la colecţia de SelectedProperties, ca şi în:

myKeywordQuery.SelectProperties.Add("xyzzy");

Multe mulţumiri şi un sfat de la pălărie la Corey Roth şi Acest post de blog-ul extrem de util (http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2008/02/19/how-to-use-the-moss-enterprise-search-keywordquery-class.aspx)

În cazul meu, "xyzzy" nu este de fapt o proprietate gestionată.  Când am adăugat la SelectedProperties oricum, SharePoint au aruncat unul de meu preferat vreodată runtime excepţii:

"Creatorul de acest defect nu specifica un motiv."

Îmi place mai ales capitala "R" în motiv.  Acest lucru sună la mine ca echivalentul .NET"Nu am nici o gura, şi eu trebuie să striga.”

</scop>

Aboneaza-te la blog-ul meu.

Urmaţi-mă pe Twitter, la http://www.twitter.com/pagalvin

Referinţă la îndemână: Implicit rezultatele de căutare KeywordQuery

Când vă invoca Execute() metoda pe un KeywordQuery, Aveţi posibilitatea să creaţi un ResultTable bazat pe ResultType.RelevantResults.  Acest fragment de cod ilustrează ce vreau să spun:

ResultTableCollection resultsTableCollection = myKeywordQuery.Execute();

ResultTable searchResultsTable = resultsTableCollection[ResultType.RelevantResults];

Tabelul rezultată va avea următoarele coloane de informații: 

WorkId
Protopopiat
Titlul
Autor
Dimensiune
Calea
Descriere
Scrie
SiteName
CollapsingStatus
HitHighlightedSummary
HitHighlightedProperties
ContentClass
IsDocument
PictureThumbnailURL
ServerRedirectedURL

Am derivat această listă la o SharePoint 2010 mediu, curaj a redacta.  Sperăm că acesta va fi util pentru cineva în viitor.

</scop>

Aboneaza-te la blog-ul meu.

Urmaţi-mă pe Twitter, la http://www.twitter.com/pagalvin

Un motiv pentru: "Nu a reuşit pentru a extrage fişierul cab în soluție”

În timp ce lucrează pe o parte web visual student proiect astăzi, Am făcut o re-org minoră de unele fişiere pentru a fi puse în folderul _layouts ca parte a procesului de implementare. În mod specific, Am redenumit un fişier .js la "TypeAhead.js" la "TypeAhead(vechi).JS"  Am de gând să scoateţi-l cât mai curând succesoarea sa "TypeAhead.js" se dovedeşte corectă.  Parea ca aceasta:

image

Acest lucru imediat cauzat o problemă cu visual studio, atunci când am încercat să disloce proiectului:

Eroare în implementare pas "Adauga soluţie": Imposibil de extras cab dosar în soluție.

Se pare că ar trebui să nu puneţi o paranteză în nume de fişier.  Am scos parens şi care a rezolvat problema.

</scop>

Aboneaza-te la blog-ul meu.

Urmaţi-mă pe Twitter, la http://www.twitter.com/pagalvin

Încă mai multe jQuery–Redimensionaţi un exemplu de imagine

Am moştenit o parte web de la un client vechi furnizor si are o problema cu marimea imaginii.  Imaginile ar trebui să fie 60×50 dar pentru un motiv ciudat, producătorul original le forţat în 42×42, astfel încât acestea uita strivită:

 

Bună imagine

Bad Image

Aici este markup (oarecum simplificată):

<tabelul clasa = "extins-outlook">
  <tHead>
    <TR>
      <th  latime ='100′>3 Marţi</th>
    </TR>
  </tHead>

  <tBody>
    <TR clasa = "previziuni">
      <TD lăţime ='100′>
        <ul>
          <li clasa = 'mare'>Mare: 72&deg;F</li>
          <li clasa = 'mici'>Low: 44&deg;F</li>
          <li clasa = 'stare'>Însorit
            <img src =’
http://deskwx.weatherbug.com/images/Forecast/icons/localized/60×50/en/trans/cond007.png’ latime ='42’ inaltime ='42’ alt =” />
          </li>
        </ul>
      </TD>
    </TR>

  </tBody>

</tabel>

Veţi notă că chiar dacă calea către imaginea în sine Afişează dimensiunea corectă (60×50) producătorul original forţat-o în 42×42.  de ce?  nebun.

Oricum, Am vrut o soluţie rapidă şi uşoară la această problemă şi am apelat la jQuery.  Trucul a fost de a localiza toate corespunzătoare <IMG> Tag-uri.  Nu am vrut să muck despre cu orice alte img tag-uri (din care există multe).  Acest pic de jQuery a făcut truc:

<script-ul de tip = text/javascript"" src ="http://AJAX.googleapis.com/Ajax/libs/jQuery/1.5/jQuery.min.js"></script-ul>

<script-ul de tip = "text/javascript">
     $(document).gata(funcţia () {

         $("li.condition > img ").fiecare(funcţia (Indicele, element)
           
{
             $(element).CSS("lăţime", "60"); 
             $(element).CSS("înălţime", "50");
            });
     }); // pe documentul de încărcare
</script-ul>

Că pic de cod constată Colectia <li> Tag-uri ale căror clasă este "stare" şi <IMG> copii.  Acesta reiterează apoi prin toate că.  Worked asemãnãtor un acuzaþie.

Eu, probabil, ar putea simplifica l, dar niciodată nu a fost un fel de tip unix care π a rezolvat pentru a 18 cifre precizie folosind sed şi awk şi eu nu sunt ca un fel, în cazul în care jQuery tip fie Zâmbet.

</scop>

Aboneaza-te la blog-ul meu.

Urmaţi-mă pe Twitter, la http://www.twitter.com/pagalvin

XML Parsing cu LINQ

Aici este un exemplu rapida folosind LINQ pentru a analiza unele  XML şi a obţine la dulce, dulce atribute în aceasta.

Iată XML vreau pentru a analiza:

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

    <PageLayout nume = "xyzzy">
      <File>
        <Fila TabOrder = "1" TabLabel = "x" SharePointContentType = "a" AdditionalConstraints = "ac1" />
        <Fila TabOrder = "2" TabLabel = "y" SharePointContentType = "b" AdditionalConstraints = "ac2" />
      </File>
    </PageLayout>

    <PageLayout nume = "xyzzy2">
      <File>
        <Fila TabOrder = "100" TabLabel = "x" SharePointContentType = "a" AdditionalConstraints = "ac1" />
        <Fila TabOrder = "101" TabLabel = "y" SharePointContentType = "b" AdditionalConstraints = "ac2" />
        <Fila TabOrder = "103" TabLabel = "z" SharePointContentType = "c" AdditionalConstraints = "ac3" />
      </File>
    </PageLayout>

  </PageLayouts>
</DeafultConfigurationSets>

Vreau să construiască până unele file în timpul rulării de parsarea de mai sus.  Meu file depind de o machetă de pagină.  Dacă numele meu macheta de pagină este "xyzzy2", atunci vreau să obţineţi file 100, 101 şi 103 (filele din <PageLayout nume = "xyzzy2">).

Iată LINQ care nu este:

var allTabs =
              din p în
                  XElement.Parse(theXmlToParse).
                 
Elemente("PageLayouts").
                  Elemente("PageLayout")
              în cazul în care (p.attribute("Nume").Value.Equals("xyzzy2"))
              la m în p.Elements("File").Elemente("Fila")
              Selectaţi m;

          Results.text = şir.Gol;

          foreach (var aTab în allTabs)
          {
              Results.text =
                  "Ordinea tabulatorilor: " + aTab.Attribute("TabOrder").Valoarea + " |" +
                  "Fila eticheta: " + aTab.Attribute("TabLabel").Valoarea + " | " +
                  "SharePointContentType: " + aTab.Attribute("SharePointContentType").Valoarea + " | " +
                  "AdditionalConstraints: " + aTab.Attribute("AdditionalConstraints").Valoarea + "r";
          }

În cele de mai sus, Variabila "theXmlToParse" este o variabilă şir, dar puteţi utiliza sarcina() metoda pe un flux dacă vă place.

"Rezultatele" este o etichetă pe un formular web și când acest cod execută, se pare ca asta:

SNAGHTML11cd2e7c

Eu nu s-au elaborat cum să sorteze rezultatele încă, Deci, voi lăsa că pentru un post de viitor blog.

</scop>

Aboneaza-te la blog-ul meu.

Urmaţi-mă pe Twitter, la http://www.twitter.com/pagalvin

SharePoint 2010 KeywordQuery şi utilizatorii anonimi

Am activat acces anonim în site-ul meu pentru a testa o parte de căutare web mi-am dezvoltat şi pentru a o mare surpriză, nu au destul de lucru.  Acces anonim este destul de mult întotdeauna o provocare pentru mine.

În acest caz, căutare iniţială nu a fost difuzate pentru un motiv oarecare.  Ar trebui să spun că a fost rulează, dar nu a fost întoarce rezultate.  I sînt folosire KeywordQuery pentru care iniţial de afişare.

Am făcut o căutare rapidă şi acest blog post de"sowmyancs"a venit destul de repede: “SharePoint 2010 Căutare: nu orice rezultate pentru utilizatorii anonimi?”  Că blog intrare descrie problema de la un out a perspectivei de căutare caseta de cuvinte cheie, dar comportamentul a fost similară cu a mea-ea a lucrat pentru utilizatorii autentificați şi pentru utilizatorii anonimi, dar utilizatorii anonimi luat nici un rezultat. 

Am urmat instrucţiunile şi bang!  A rezolvat problema mea.  Nu sunt sigur ce efecte secundare, acest lucru va avea şi ei pot dovedi a fi o problemă, dar pe termen scurt rezultatul este util.

Faceţi clic pe prin blog:

image

</scop>

Aboneaza-te la blog-ul meu.

Urmaţi-mă pe Twitter, la http://www.twitter.com/pagalvin

SharePoint 2010 KeywordQuery şi proprietatea HiddenConstraints

Am făcut un pic de lucru cu KeywordQuery obiect din SharePoint 2010 şi care recurg la HiddenConstraints proprietate.

Nu am gasit orice informaţii utile imediat pe faptul că proprietatea, asa ca m-am gândit aş rapid ciornă cum am fost folosind aceasta.

În măsura în care pot să spun, Aceasta este o restricţie automată adăugate la interogare, astfel încât aveţi posibilitatea să sortaţi a parcului este acolo şi nu vă faceţi griji despre asta.  Ca atare, Acesta este doar un alt cuvânt cheie (sau un set de cuvinte cheie) şi modificatori care aveţi posibilitatea să tastaţi în la UI atunci când faci o căutare de cuvinte cheie.  Iată un exemplu:

keywordQuery.HiddenConstraints = "domeniul de aplicare:\"Industry" ";

Aveţi posibilitatea să adăugaţi constrângeri suplimentare cu un spaţiu separator.

keywordQuery.HiddenConstraints = "domeniul de aplicare:\"Industry" Aparare";

Cele de mai sus este de a spune în limba engleză, "executaţi o interogare de cuvinte cheie în căutarea"aparare"şi mai mult, Utilizaţi "Industrie" domeniul de aplicare.

Iată un alt mod de a privi la ea:

image

Eu am been folosire it pentru a furniza un domeniu dependente de contextul automată pe o parte web particularizate.  Când utilizatorul face clic pe o filă şi face clic pe un buton de căutare, fila dictează un domeniu de căutare special.  Este de lucru bine atât de departe.

</scop>

Aboneaza-te la blog-ul meu.

Urmaţi-mă pe Twitter, la http://www.twitter.com/pagalvin

Exemplu: XSLT crearea HTML Href

Am fost de a face un pic de XSL chestii în ultima vreme şi gândit aş pune împreună un eşantion pentru meu de referinţă viitoare şi care poate fi de valoare pentru noi toţi XSLT-ers face o viaţă în Internet.

Luaţi în considerare următoarele XML:

<FdcSearchTabsCollection Count = "2">
  <SearchTab Label = "industrie" SortOrder = "00" Label = "Industriile" SearchConstraints = "contenttype:Industria" TabID = "831b2a74-98c4-4453-8061-86e2fdb22c63" />
  <SearchTab Label = "practici" SortOrder = "01" Label = "Practici" SearchConstraints = "contenttype:PracticeGroups" TabID = "678e206b-6996-421f-9765-b0558fe1a9c0" />
</FdcSearchTabsCollection>

Următorul fragment XSL va genera o listă sortată de file de hrefs:

<XSL:şablon meci = "FdcSearchTabsCollection" XML:spaţiu = "conserva">
   
    <!– "Toate" fila –>
    <o href = "javascript:ViewTab("Toate")">Vezi toate</o>
   
    <!– Fiecare filă individuale –>
    <!– Repeta prin toate filele şi afişa corect  link-uri. –>
    <XSL:pentru fiecare select = "SearchTab">
      <XSL:sortare select="@SortOrder"/>

      …
      <o href = "javascript:ViewTab(‘{@TabID}’)"><XSL:valoare de select="@Label"/></o>
    </XSL:pentru fiecare>

    <br /> 
   

   </XSL:şablon>

Aici este ceea ce pare în SharePoint:

SNAGHTML78aa2cb

 

 

</scop>

Aboneaza-te la blog-ul meu.

Urmaţi-mă pe Twitter, la http://www.twitter.com/pagalvin