Sense parar nidificació <Div> Etiquetes i jQuery

Això sembla com un tema tan oddball, No estic segur que realment val la pena blogging sobre, però que mai no ha deixat m abans de, Així que aquí anem somriure

Estic treballant en un projecte on m'estic tirant algunes dades d'una cerca, embalatge a un missatge XML i llavors aquella XML en última instància, es transforma en HTML mitjançant XSLT.  Hi ha un munt de jQuery implicats, una mica de que implementa alguna funcionalitat tabulació.  Quan fa clic a una fitxa (realment, un <Div>), jQuery invoca .hide() i .show() en diversos divs (càrrega de la pàgina inicial descarrega tot el contingut, així que hi ha cap devolucions en aquest cas).

Un grapat d'hores fa, la pestanya commutació lògica començar a comportar-se de manera erràtica i no Mostra un dels meus tabuladors.  Jo finalment segueixi fins el fet que Explorador d'internet (com a mínim) pensar que la <Div> Etiquetes niuades lluny, molt més profund que pretén.El toolbar de desenvolupador mostraria:

-<div id = "Tab1Content">
  -<Div>
    -<Div>
      -<div id = "Tab2Content">
        -<Div>
           …………………………
                   </Div>  <— Finalment demostrant que fou clausurada completament aquí!

Així, si feia un $("#Tab1Content").Amaga(), També em vaig amagar els Tab2 i jo podria mai no mostrar Tab2 si no mostrar també Tab1.  Copiava i enganxava el codi a visual studio i va mostrar tots convenint el div manera bonica, igual que suposava estar fent, mirant com aquest:

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

Vaig batre el meu cap contra la paret per una estona i notat que en el present codi HTML codi es genera una gran quantitat de buit <Div> Etiquetes, com:

<cos>

  <div id = "Tab1Content">

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

  </Div>

  <div id = "Tab2Content">

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

  </Div>

</cos>

(Això és waaaaaaaaaaaay simplista.  Les etiquetes div buides són totalment vàlids. Alguns dels meus <Div> Etiquetes estaven plenes de contingut, però no eren molts més.  Vaig arribar a la conclusió que el meu <XSL:per a cada> directives estaven emetent la forma curta etiquetes div quan el xsl:no per-tots "trobar cap dada.  Jo forçat un comentari HTML a la sortida, com es Mostra:

image

 

Després que fes allò, tots el div alineats molt bé i meu tabulador de commutació va començar a treballar.

Com sempre, Espero que això ajudi a algú en un pessic.

</final>

Subscriure's al meu blog.

Follow me on Twitter http://www.twitter.com/pagalvin

Solució ràpida: "El nom de tipus de contingut '$ recursos:ReportServerResources … no pot contenir … caràcters especials”

He estat gastant temps neteja de SharePoint 2010 lloc i una de les qüestions de neteja es refereix a un corrupte / incorrectament instal lat assumpte SQL Server Report Services.  El problema sorgeix quan un dels meus companys van intentar salvar un lloc com a una plantilla i llavors creï crear un lloc nou basat en aquesta plantilla.  L'estalviar operació treballat bé, però quan va intentar crear el nou lloc, SharePoint apareix el següent missatge d'error:

Error

El nom de tipus de contingut ' $Resources:ReportServerResources,DataSourceContentTypeName;"no pot contenir: \ / : * ? “ # % < > { } | ~ & , dos períodes consecutius (..), o caràcters especials com ara una tabulació.

Heus aquí una gorra de pantalla:

 

image

Jo tenia un aspecte en els tipus de contingut en el lloc i trobava això:

image

Els tipus de contingut són clarament saludables.

Aquest assumpte sembla sortit molt sobre la Internets i no sembla per ser un únic consens sobre com solucionar-lo.  He trobat una taula manejable que assignen els noms de tipus de contingut mal als noms de tipus de contingut bo aquí: http://social.technet.microsoft.com/Forums/en-ZA/sharepoint2010programming/thread/cb03e866-8184-4943-acfe-cafffa1b8b7a.  Puc actualitzar manualment-los així:

image

(BrightStarr el nom és òbviament opcional, però això no pot fer mal somriure )

Això va permetre a mi per crear una plantilla nova i no trencar res en els altres llocs, incloent-hi algunes coses PerformancePoint servidor que estaven treballant un grup de persones completament diferent.  Jo llavors era capaç de crear un lloc nou en la plantilla.  Èxit!

No estic segur que això és un 100% solució, però em va fer i tots els involucrats davant d'això molestant error.  Si trobo res nou, Enviaré una actualització.  Meu nerviosisme deriva del fet que aquests noms no ha estar equivocats en primer lloc i corregint el nom de visualització, Jo no estic tocant el nom intern. 

</final>

Subscriure's al meu blog.

Follow me on Twitter http://www.twitter.com/pagalvin

Causa per a "el creador d'aquest error no especificat una raó.”

He estat fent molta feina amb SharePoint cerca últimament i específicament la classe KeywordQuery, propietats i mètodes.

Si voleu el resultat per retornar resultats més enllà de sospitosos habituals (veure aquí), Afegiu a la col·lecció SelectedProperties, com a:

myKeywordQuery.SelectProperties.Add("xyzzy");

Moltes gràcies i una punta del barret per Corey Roth i Aquest bloc enormement útil (http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2008/02/19/how-to-use-the-moss-enterprise-search-keywordquery-class.aspx)

En el meu cas, "xyzzy" no és en realitat una propietat administrada.  Quan afegia al SelectedProperties de tota manera, SharePoint va llançar un dels meus favorits mai runtime excepcions:

"El creador d'aquesta culpa no heu especificat una raó."

M'agrada especialment la capital "R" en la raó.  Això em sona a l'equivalent .NET"No tinc cap boca, i em cal cridar.”

</final>

Subscriure's al meu blog.

Follow me on Twitter http://www.twitter.com/pagalvin

Referència pràctica: Per defecte els resultats de cerca de KeywordQuery

Quan vostè invoca l'executar() mètode en un KeywordQuery, Podeu crear un ResultTable basat en ResultType.RelevantResults.  Aquest fragment de codi il·lustra el que vull dir:

ResultTableCollection resultsTableCollection = myKeywordQuery.Execute();

ResultTable searchResultsTable = resultsTableCollection[ResultType.RelevantResults];

La taula resultant tindrà les següents columnes d'informació: 

WorkId
Rang
Títol
Autor
Mida
Camí
Descripció
Escriure
SiteName
CollapsingStatus
HitHighlightedSummary
HitHighlightedProperties
ContentClass
IsDocument
PictureThumbnailURL
ServerRedirectedURL

Jo deriva aquesta llista de SharePoint 2010 medi ambient, edició d'empresa.  Esperançadorament serà útil a algú en el futur.

</final>

Subscriure's al meu blog.

Follow me on Twitter http://www.twitter.com/pagalvin

Una de les raons per a: "Fracassat extreure l'arxiu de cabina a la solució”

Mentre treballava en un element web de estudi visual del projecte avui, Vaig fer un re menor-org d'alguns arxius que es posarà en la carpeta layouts com a part del procés de desplegament. Específicament, Jo el nom d'un arxiu. js des de "TypeAhead.js" a "TypeAhead(vell).JS"  Penso treure-ho tan aviat com el seu successor "TypeAhead.js" és correcta.  S'assemblava a això:

image

Això immediatament causat un problema amb visual studio quan vaig intentar desplegar el projecte:

Occured d'error en el pas de desplegament "Afegir una solució": No ha pogut extreure l'arxiu de cabina a la solució.

Resulta que no ha posat un parèntesi en els noms de fitxer.  Treia el parens i que resolia el problema.

</final>

Subscriure's al meu blog.

Follow me on Twitter http://www.twitter.com/pagalvin

No obstant això, més jQuery–Redimensionar un exemple d'imatge

Heretava un element web de proveïdor vells del client i que té un problema de mida d'imatge.  Les imatges haurien de 60×50 però per alguna estranya raó, el venedor original els obligà a 42×42, Així es veuen aplastat:

 

Bona imatge

Mala imatge

Aquí està l'etiquetatge (simplificat una mica):

<taula class = 'estès-outlook'>
  <Thead>
    <tr>
      <th  amplada = 100′>3 Dimarts</th>
    </tr>
  </Thead>

  <tbody>
    <classe TR = 'previsió'>
      <amplada TD = 100′>
        <ul>
          <classe li = "high">Alta: 72&DEG;F</li>
          <classe li = 'baixa'>Baixa: 44&DEG;F</li>
          <classe li = 'condició'>Assolellat
            <img src =’
http://deskwx.weatherbug.com/images/Forecast/icons/localized/60×50/en/trans/cond007.png’ amplada ='42’ alçada ='42’ alt =” />
          </li>
        </ul>
      </TD>
    </tr>

  </tbody>

</taula>

S'haurà adonat que tot i que la camí cap a la mateixa imatge Mostra la dimensió adequada (60×50) el venedor original va obligar a 42×42.  Per què?  Boig.

De tota manera, Jo volia una solució ràpida i fàcil a aquest assumpte i em vaig tornar a jQuery.  El truc era localitzar totes les adequades <img> Etiquetes.  No volia fems amb cap altra etiqueta img (de les quals n'hi ha molts).  Aquesta mica de jQuery feia el truc:

<tipus d'escriptura = text/javascript"" src ="http://Ajax.googleapis.com/Ajax/libs/jQuery/1.5/jQuery.min.js"></script>

<tipus d'escriptura = "text/javascript">
     $(document).preparat(funció () {

         $(' li.condition > img ").cada(funció (índex, element)
           
{
             $(element).CSS("amplada", "60"); 
             $(element).CSS("Alçada", "50");
            });
     }); // càrrega de documents
</script>

Aquest tros de codi es troba la col·lecció <li> Etiquetes la classe és "condició" i <img> nens.  Llavors ho itera a través de tot això.  Treballat com un encant.

Probablement podria simplificar-lo, però mai va ser un tipus de tipus unix que resolt π per 18 precisió de dígits utilitzant sed i awk i jo no sóc aquest tipus si jQuery qualsevol tipus somriure.

</final>

Subscriure's al meu blog.

Follow me on Twitter http://www.twitter.com/pagalvin

Anàlisi XML amb LINQ

Heus aquí un exemple ràpid amb LINQ per analitzar alguns  XML i aconseguir a la dolça, dolç atribueix en el mateix.

Aquí és l'XML I volen analitzar:

<?versió XML = "1.0" codificació = "utf-8" ?>
<DeafultConfigurationSets>
  <PageLayouts>

    <PageLayout nom = "xyzzy">
      <Pestanyes>
        <Pestanya TabOrder = "1" TabLabel = "x" SharePointContentType = "un" AdditionalConstraints = "ac1" />
        <Pestanya TabOrder = 2" TabLabel = "y" SharePointContentType = "b" AdditionalConstraints = "ac2" />
      </Pestanyes>
    </PageLayout>

    <PageLayout nom = "xyzzy2">
      <Pestanyes>
        <Pestanya TabOrder = "100" TabLabel = "x" SharePointContentType = "un" AdditionalConstraints = "ac1" />
        <Pestanya TabOrder = "101" TabLabel = "y" SharePointContentType = "b" AdditionalConstraints = "ac2" />
        <Pestanya TabOrder = "103" TabLabel = "z" SharePointContentType = "c" AdditionalConstraints = "ac3" />
      </Pestanyes>
    </PageLayout>

  </PageLayouts>
</DeafultConfigurationSets>

No em volen construir cap amunt d'algunes pestanyes al temps d'execució per l'anàlisi de l'anterior.  Meu tabuladors depenen d'una presentació de pàgina.  Si nom el meu disseny de pàgina és "xyzzy2" a continuació, vull aconseguir pestanyes 100, 101 i 103 (les pestanyes en <PageLayout nom = "xyzzy2">).

Heus aquí la LINQ que ho fa:

var allTabs =
              de p en
                  XElement.Parse(theXmlToParse).
                 
Elements("PageLayouts").
                  Elements("PageLayout")
              on (p.Attribute("nom").Value.Equals("xyzzy2"))
              des de m en p.Elements("Tabuladors").Elements("Tabulador")
              Seleccioneu m;

          Results.Text = cadena.Buit;

          foreach (var aTab a allTabs)
          {
              Results.Text =
                  "Tabulador d'ordre: " + aTab.Attribute("TabOrder").Valor + " |" +
                  "Tabulador d'etiqueta: " + aTab.Attribute("TabLabel").Valor + " | " +
                  "SharePointContentType: " + aTab.Attribute("SharePointContentType").Valor + " | " +
                  "AdditionalConstraints: " + aTab.Attribute("AdditionalConstraints").Valor + "r";
          }

En l'anterior, la variable "theXmlToParse" és una variable de corda, però es pot utilitzar la càrrega() mètode en un corrent si t'agrada.

"Resultats" és una etiqueta en un formulari web i quan s'executa aquest codi, s'assembla a això:

SNAGHTML11cd2e7c

Jo no he treballat com a ordenar els resultats encara, Així que ho deixo per a un futur bloc.

</final>

Subscriure's al meu blog.

Follow me on Twitter http://www.twitter.com/pagalvin

SharePoint 2010 KeywordQuery i usuaris anònims

Permetia accés anònim al meu lloc per provar un element web de cerca que he estat desenvolupant i cap gran sorpresa, funcionava bastant.  Accés anònim gairebé sempre és un repte per a mi.

En aquest cas, la recerca inicial no estava funcionant per alguna raó.  He de dir que va ser funcionant, però això no era tornar cap resultat.  Estic utilitzant el KeywordQuery per a aquella exhibició inicial.

Vaig fer una cerca ràpida i aquest bloc per"sowmyancs"sortia bastant ràpidament: “SharePoint 2010 Cerca: no mostrant cap resultat per als usuaris anònims?”  Entrada del bloc descriu el problema des d'un fora de la Perspectiva de cerca de paraules clau de caixa que el comportament era similar a la meva-va funcionar per a usuaris autenticats i per als usuaris anònims, però els usuaris anònims portava cap resultat. 

He seguit les instruccions i explosió!  Resolia el meu assumpte.  No sóc segur què això tindrà els efectes secundaris i pot arribar a ser un problema, però el resultat a curt termini és útil.

Feu clic a través del bloc:

image

</final>

Subscriure's al meu blog.

Follow me on Twitter http://www.twitter.com/pagalvin

SharePoint 2010 KeywordQuery i la propietat de HiddenConstraints

He estat fent una mica de treball amb la KeywordQuery objecte en SharePoint 2010 i fent ús de la HiddenConstraints propietat.

No he trobat cap informació útil immediatament sobre el que propietat, Així pensava que donaria ràpidament anotar com he estat utilitzant.

En la mesura que puc dir, Això és una restricció automàtica afegit a la consulta de manera que pot ordenar del parc hi ha i no et preocupis.  Com a tal, és només una altra paraula clau (o conjunt de paraules clau) i els modificadors que podeu escriure a l'UI quan fas una cerca per paraula clau.  Heus aquí un exemple:

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

Vostè pot afegir limitacions addicionals amb un delimitador d'espai.

keywordQuery.HiddenConstraints = "abast:\"Industry" defensa";

L'anterior està dient en anglès, "executar una consulta de paraula clau buscant"defensa"i a més, utilitzar l'abast "Indústria".

Aquí és una altra manera de mirar-lo:

image

He estat utilitzant per proporcionar un àmbit automàtica depenent del context a un element web personalitzades.  Quan l'usuari fa clic en una pestanya i fa clic a un botó de cerca, la pestanya dicta un àmbit de cerca concret.  Està funcionant bé fins ara.

</final>

Subscriure's al meu blog.

Follow me on Twitter http://www.twitter.com/pagalvin

Exemple: De XSLT crea HTML Href

He estat fent últimament una mica de matèria XSL i pensava que em posaria en conjunt una mostra per a la meva referència futura i que pot ser de valor per a tots nosaltres XSLT-ers fent vida de l'internets.

Considerem el següent XML:

<FdcSearchTabsCollection comte = "2">
  <SearchTab segell = "indústria" Ordenaci = etiqueta "00" = "Indústries" SearchConstraints = "el contenttype:Indústria" TabID = "831b2a74-98c4-4453-8061-86e2fdb22c63" />
  <SearchTab segell = "pràctiques" Ordenaci = "01" Label = "Pràctiques" SearchConstraints = "el contenttype:PracticeGroups" TabID = "678e206b-6996-421f-9765-b0558fe1a9c0" />
</FdcSearchTabsCollection>

El fragment següent de XSL generarà una llista ordenada de pestanyes hrefs:

<XSL:Partit de plantilla = "FdcSearchTabsCollection" XML:espai = "preservar">
   
    <!– El "tot" pestanya –>
    <un href = "javascript:ViewTab(' La)">Visualitza-ho tot</un>
   
    <!– Cada fitxa individual –>
    <!– Iterate a través de tots els tabuladors i mostrar la correcta  enllaços. –>
    <XSL:= seleccionar per a cada "SearchTab">
      <XSL:select="@SortOrder"/ mena>

      …
      <un href = "javascript:ViewTab(‘{@TabID}’)"><XSL:valor de select="@Label"/></un>
    </XSL:per a cada>

    <br /> 
   

   </XSL:plantilla>

Aquí és què mira com Microsoft Office SharePoint Server:

SNAGHTML78aa2cb

 

 

</final>

Subscriure's al meu blog.

Follow me on Twitter http://www.twitter.com/pagalvin