Endlessly Nesting <p> Etiquetas e jQuery

Este semella ser un excéntrico como tema, Eu non estou seguro se é realmente paga a pena blog sobre, pero iso nunca me impediu antes de, entón aquí imos nós sorriso

Eu estou a traballar nun proxecto onde estou tirando algúns datos dunha investigación, embalaxe-lo nunha mensaxe XML e logo, que o XML é finalmente transformada HTML vía XSLT.  Hai unha morea de jQuery implicados, un pouco do que aplica algunhas funcións tabulación.  Cando fai clic nunha guía (realmente, un <p>), jQuery invoca. ocultar() e. espectáculo() en varios divs (a cargar a páxina de inicio traslada todo o contido para que non haxa mensaxes neste caso).

Unha banda de horas, a lóxica de conmutación guía comezou a comportarse de forma irregular e que non ía amosar un dos meus guías.  Eu finalmente Rastrexar-lo para o feito de que a Internet Explorer (polo menos) pensado que o <p> tags noutras citas lonxe, moito máis profundo do que Developer Toolbar intended.The mostraría:

-<div id = "Tab1Content">
  -<p>
    -<p>
      -<div id = "Tab2Content">
        -<p>
           ..............................
                   </p>  <-Por último mostrando que estaba pechado todo o camiño ata aquí!

Así, se eu fixese un $("# Tab1Content").agochar(), Gustaríame tamén de ocultar Tab2 e eu nunca podería mostrar Tab2 se eu non mostran tamén Tab1.  Copiei e colei o código en Visual Studio e mostrou toda a mucosa da div-se ben, exactamente como se supón que deberían estar facendo, dese xeito:

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

Eu bati miña cabeza contra a parede por un tempo e notei que o código HTML real estaba xerando unha chea de baleiro <p> Tag, como:

<corpo>

  <div id = "Tab1Content">

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

  </p>

  <div id = "Tab2Content">

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

  </p>

</corpo>

(A descrición anterior é waaaaaaaaaaaay simplificado.  As etiquetas div baleiros son totalmente válido. Algúns dos meus <p> marcas estaban cheos de contido, pero moitos outros non eran.  Cheguei á conclusión de que a miña <XSL:a-cada> directivas emitían as etiquetas div de forma curta, cando o XSL:for-each non "atopa algunha datos.  Forcei un comentario HTML na saída, como se mostra:

image

 

Despois de que eu fixen, toda div está aliñado ben e meu guía cambio comezou a traballar.

Como sempre, Espero que isto axude alguén nunha pitada.

</final>

Rexístrate para o meu blog.

Siga-me no Twitter http://www.twitter.com/pagalvin

Quick Fix: "O nome do tipo de contido 'R $ recursos:ReportServerResources … non pode conter … caracteres especiais”

Teño pasado algún tempo a limpeza dun SharePoint 2010 local e un dos problemas de limpeza refírese a un corrupto / instalado incorrectamente problema Report Services do SQL Server.  A cuestión xurdiu cando un dos meus compañeiros intentaron salvar un sitio como un modelo e, a continuación, crear crear un novo sitio web baseado nese modelo.  A operación de salvamento funcionou ben, pero cando intentou crear o novo sitio web, SharePoint aparecerá a seguinte mensaxe de erro:

Erro

O nome do tipo de contido "$ Resources:ReportServerResources,DataSourceContentTypeName;'Non pode conter: \ / : * ? " # % < > { } | ~ & , dous períodos consecutivos (..), ou caracteres especiais, como unha guía.

Aquí está unha tapa de pantalla:

 

image

Eu tiña un ollar para os tipos de contido na web e atopei este:

image

Estes tipos de contidos son claramente insalubre.

Esta cuestión parece vir-se moito nas Internets e non parece ser un único consenso sobre como resolvelo.  Eu atopei unha táboa práctica que mapeou os nomes malas tipo de contido a un bo contido tipo nomes aquí: http://social.technet.microsoft.com/Forums/en-ZA/sharepoint2010programming/thread/cb03e866-8184-4943-acfe-cafffa1b8b7a.  Eu actualizar de xeito manual deste xeito:

image

(BrightStarr o nome é obviamente opcional, pero non pode ferir sorriso )

Tanto me permitiu crear un novo modelo e non romper nada en outros sitios, incluíndo algunhas cousas PerformancePoint Server que un grupo totalmente diferente de persoas estaban traballando.  Eu era entón capaz de crear un novo sitio web no modelo.  Éxito!

Non estou seguro de que este é un 100% solución, pero eu e todos os implicados pasado este erro irritante ten.  Se eu atopar nada novo, Vou publicar unha actualización.  O meu nerviosismo transcorre do feito de que eses nomes non debe estar mal, en primeiro lugar e pola fixación do nome de visualización, Non estou tocando o nome interno. 

</final>

Rexístrate para o meu blog.

Siga-me no Twitter http://www.twitter.com/pagalvin

Un motivo para "O creador desta falla Non especificou a razón.”

Eu teño feito unha chea de traballo coa investigación do SharePoint recentemente e, especialmente, a clase KeywordQuery, propiedades e métodos.

Se desexa que o conxunto de resultados para voltar resultados enriba e alén dos sospeitosos do costume (vexa aquí), engadir lo á colección SelectedProperties, como no:

myKeywordQuery.SelectProperties.Add("xyzzy");

Moitas grazas e unha punta do sombreiro para Corey Roth e este moi útil blog (http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2008/02/19/how-to-use-the-moss-enterprise-search-keywordquery-class.aspx)

No meu caso, "Xyzzy" non é realmente unha propiedade xestionado.  Cando eu engade a SelectedProperties de calquera maneira, SharePoint xogou un dos meus favoritos de sempre excepcións de tempo de execución:

"O creador desta falla non especificou un motivo".

Gústame especialmente da capital "R" na razón.  Isto paréceme que o. Equivalente Net de "Eu non teño ningunha boca, e eu teño que berrar."

</final>

Rexístrate para o meu blog.

Siga-me no Twitter http://www.twitter.com/pagalvin

Referencia Handy: Resultados por defecto de Investigación KeywordQuery

Cando chamar o Executar() método nun KeywordQuery, pode crear un ResultTable baseado ResultType.RelevantResults.  Este fragmento de código ilustra o que quero dicir:

ResultsTableCollection ResultTableCollection = myKeywordQuery.Execute();

ResultTable searchResultsTable resultsTableCollection =[ResultType.RelevantResults];

A táboa resultante terá as seguintes columnas de información: 

WorkId
Posición
Título
Autor
Tamaño
Camiño
Descrición
Escribir
Nome_do_Site
CollapsingStatus
HitHighlightedSummary
HitHighlightedProperties
Contentclass
IsDocument
PictureThumbnailURL
ServerRedirectedURL

Eu derivado desta lista a partir dun SharePoint 2010 ambiente, Enterprise Edition.  Espero que sexa útil para alguén no futuro.

</final>

Rexístrate para o meu blog.

Siga-me no Twitter http://www.twitter.com/pagalvin

Unha razón para: "Non se puido extraer o arquivo taxi na solución”

Mentres traballaba nun proxecto do Visual Studio web parte hoxe, Eu fixen unha pequena re-org de algúns arquivos para ser colocadas na carpeta _layouts como parte do proceso de implantación. Especificamente, Eu renomeei un arquivo. Js de "TypeAhead.js" para "typeahead(vello).js "  Eu pretendo eliminar-lo así que o seu sucesor "TypeAhead.js" proba correcta.  Semella que este:

image

Este inmediatamente causou un problema co visual studio cando tente implantar o proxecto:

Error occurred in deployment step ‘Add Solution’: Non se puido extraer o arquivo Cab na solución.

Acontece que non debe poñer un paréntese en nomes de ficheiros.  Tirei as parénteses e que resolveu o problema.

</final>

Rexístrate para o meu blog.

Siga-me no Twitter http://www.twitter.com/pagalvin

JQuery aínda máis–Redimensionar un exemplo de imaxe

Eu herdei unha parte web do antigo provedor de un cliente e el ten un problema de tamaño da imaxe.  As imaxes deben ser de 60×50 pero por algún motivo estraño, o provedor orixinal forzado los 42×42, para que queden esmagados:

 

Boa Imaxe

Bad Image

Aquí está o marcado (tanto simplificada):

<mesa class = "extended-Outlook '>
  <thead>
    <tr>
      <º  width = '100′>3 Martes</º>
    </tr>
  </thead>

  <tbody>
    <tr class = 'previsión'>
      <td width = '100′>
        <ª>
          <li class = "alto">Alto: 72&ti;F</li>
          <li class = 'baixa'>Baixo: 44&ti;F</li>
          <li class = 'condición'>Soleado
            <img src =’
http://deskwx.weatherbug.com/images/Forecast/icons/localized/60×50/en/trans/cond007.png’ width = '42’ height = '42’ alt =” />
          </li>
        </ª>
      </td>
    </tr>

  </tbody>

</mesa>

Vai notar que, aínda que o camiño cara á propia imaxe amosa a dimensión axeitada (60×50) o provedor orixinal forzado en 42×42.  ¿Por que?  Tolo.

De calquera xeito, Eu quería unha solución rápida e fácil a esta cuestión e eu me virei para jQuery.  O truco era localizar as apropiado <img> etiquetas.  Eu non quería muck sobre con calquera outras etiquetas img (de que son moitos).  Este pouco de jQuery fixo o truco:

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

<script type="text/javascript">
     $(documento).preparado(función () {

         $(‘li.condition > img ').cada(función (índice, elemento)
           
{
             $(elemento).css("width", "60"); 
             $(elemento).css("height", "50");
            });
     }); // na carga documento
</guión>

Este anaco de código atopa a colección <li> marcas cuxa clase é "condición" e <img> nenos.  A continuación, el percorre todo isto.  Traballou como un encanto.

Eu probablemente podería acelerar isto, pero eu nunca fun un tipo de unix cara que resolveu π para 18 díxitos de precisión usando sed e awk, e eu non son ese tipo cara jQuery ou sorriso.

</final>

Rexístrate para o meu blog.

Siga-me no Twitter http://www.twitter.com/pagalvin

Analizando XML con LINQ

Aquí está un exemplo rápido usando LINQ para analizar algúns  XML e chegar ao doce, atributos doces nel.

Aquí está o XML Quero analizar:

<?xml version="1.0" encoding="utf-8" ?>
<DeafultConfigurationSets>
  <PageLayouts>

    <PageLayout name="xyzzy">
      <Tabs>
        <Tab TabOrder="1" TabLabel="x" SharePointContentType="a" AdditionalConstraints="ac1"/>
        <Tab TabOrder="2" TabLabel="y" SharePointContentType="b" AdditionalConstraints="ac2"/>
      </Tabs>
    </PageLayout>

    <PageLayout name="xyzzy2">
      <Tabs>
        <Tab TabOrder="100" TabLabel="x" SharePointContentType="a" AdditionalConstraints="ac1"/>
        <Tab TabOrder="101" TabLabel="y" SharePointContentType="b" AdditionalConstraints="ac2"/>
        <Tab TabOrder="103" TabLabel="z" SharePointContentType="c" AdditionalConstraints="ac3"/>
      </Tabs>
    </PageLayout>

  </PageLayouts>
</DeafultConfigurationSets>

Quero construír algunhas guías en tempo de execución por analizar o anterior.  Os meus guías depender dun esquema de páxina.  O nome do meu deseño da páxina é "xyzzy2", entón quero comezar guías 100, 101 e 103 (as guías <PageLayout name = "xyzzy2">).

Aquí está o LINQ que fai:

var allTabs =
              desde p, en
                  XElement.Parse(theXmlToParse).
                 
Elementos("PageLayouts").
                  Elementos("PageLayout")
              onde (p.Attribute("name").Value.Equals("xyzzy2"))
              m de p.Elements("Tabs").Elementos("Tab")
              seleccionar m;

          Results.Text = string.Empty;

          foreach (var Atab en allTabs)
          {
              Results.Text =
                  "Tab Order: " + aTab.Attribute("TabOrder").Valor + " |" +
                  "Tab Label: " + aTab.Attribute("TabLabel").Valor + " | " +
                  "SharePointContentType: " + aTab.Attribute("SharePointContentType").Valor + " | " +
                  "AdditionalConstraints: " + aTab.Attribute("AdditionalConstraints").Valor + "\r";
          }

No exemplo anterior,, a variable "theXmlToParse" é unha variable de secuencia, pero pode utilizar a carga() método nun córrego, se desexa.

"Resultados" é unha etiqueta nun formulario web e, cando este código é executado, parece que esta:

SNAGHTML11cd2e7c

Non teño a traballar para fóra como para clasificar os resultados aínda, entón eu vou deixar isto para un futuro post no blog.

</final>

Rexístrate para o meu blog.

Siga-me no Twitter http://www.twitter.com/pagalvin

SharePoint 2010 KeywordQuery e Usuarios non rexistrados

Eu activado o acceso anónimo no meu sitio para probar unha parte da investigación na web eu teño benvida a desenvolver e para sorpresa, non funciona moi ben.  O acceso anónimo é case sempre un reto para min.

Neste caso, a procura de inicio non estaba funcionando por algún motivo.  Debo dicir que foi en execución, pero non estaba retornando ningún resultado.  Eu estou usando o KeywordQuery para que a pantalla de inicio.

Eu fixen unha procura rápida e este post no blog de "sowmyancs"Veu-se rapidamente: "SharePoint 2010 Procurar: non mostrando ningún resultado para os usuarios anónimos?"  Este blog describe o problema desde unha perspectiva de fóra do cadro de busca palabra clave, pero o comportamento foi similar ao meu - el traballou para usuarios rexistrados e usuarios anónimos, pero os usuarios anónimos non teño resultados. 

Eu seguín as instrucións e bang!  El resolveu o meu problema.  Eu non estou seguro do que efectos secundarios que terá e que podería ser un problema, pero o resultado a curto prazo é útil.

Prema no a través do blog:

image

</final>

Rexístrate para o meu blog.

Siga-me no Twitter http://www.twitter.com/pagalvin

SharePoint 2010 KeywordQuery ea Propiedade HiddenConstraints

Eu teño feito un pouco de traballo co KeywordQuery obxecto en SharePoint 2010 e facendo uso do HiddenConstraints propiedade.

Eu non atopei calquera información inmediatamente útil sobre o inmoble que, entón eu penso que eu ía anotar axiña como eu teño usado.

Polo que podo dicir, esta é unha restrición automática engadida á consulta de modo que pode clasificarse de estaciona-lo alí e non hai problema con iso.  Como tal, é só outra palabra clave (ou conxunto de palabras clave) e modificadores que podes escribir para a interface de usuario cando se fai unha busca por palabra.  Aquí está un exemplo:

keywordQuery.HiddenConstraints = alcance ":\"Industria " ";

Vostede poderá engadir ningunha restrición adicional cun delimitador de espazo.

keywordQuery.HiddenConstraints = alcance ":\"A industria " defensa ";

O texto anterior está dicindo en inglés, "Executar unha consulta contrasinal procura de" defensa "e, ademais, usar o "Industria" alcance.

Velaquí outra maneira de ollar para el:

image

Eu teño usado para proporcionar un espazo dependente do contexto automática en unha parte da web personalizada.  Cando o usuario fai clic nunha pestana e fai clic no botón de busca, a guía determina un ámbito de investigación particular.  Funciona ben ata agora.

</final>

Rexístrate para o meu blog.

Siga-me no Twitter http://www.twitter.com/pagalvin

Exemplo: XSLT creating href HTML

Eu teño feito un pouco de cousas XSL ultimamente e penso que eu ía montar un exemplo para a miña mesmas e que pode ser de valor para todos nós XSLT-ERS gañar a vida nas internets.

Considero o seguinte XML:

<Conde FdcSearchTabsCollection = "2">
  <Etiqueta SearchTab = Industria "" SortOrder = "00" Label = "industrias" SearchConstraints = "contenttype:Industria" Tabid = "831b2a74-98c4-4453-8061-86e2fdb22c63" />
  <Etiqueta SearchTab = "Prácticas" SortOrder = "01" label = "Prácticas" SearchConstraints = "contenttype:PracticeGroups" Tabid = "678e206b-6996-421f-9765-b0558fe1a9c0" />
</FdcSearchTabsCollection>

O tramo de XSL a seguir pode xerar unha lista ordenada de guías HREFs:

<XSL:xogo template = FdcSearchTabsCollection "" xml:space = "preserve">
   
    <!– O "todos" separador –>
    <a href = "javascript:ExibirGuia(‘All’)">Ver</un>
   
    <!– Cada guía individual –>
    <!– Percorrer todos os guías e amosar o correcto  Ligazóns. –>
    <XSL:formas Each select = "SearchTab">
      <XSL:tipo select = "@ SortOrder" />

      …
      <a href = "javascript:ExibirGuia('{@ Tabid}')"><XSL:valor de select = "Etiqueta @" /></un>
    </XSL:a-cada>

    <br /> 
   

   </XSL:modelo>

Aquí está o que parece o SharePoint:

SNAGHTML78aa2cb

 

 

</final>

Rexístrate para o meu blog.

Siga-me no Twitter http://www.twitter.com/pagalvin