Endlessly Nesting <div> Tag at jQuery

Ito tila tulad ng isang paksa oddball, Hindi ako sigurado ito ay talagang nagkakahalaga ng pag-blog tungkol sa, ngunit na hindi kailanman tumigil sa akin bago, kaya dito kami pumunta ngiti

Ako nagtatrabaho out sa isang proyekto kung saan ako kumukuha ng ilang mga data mula sa isang paghahanap, packaging up ito sa isang XML mensahe at pagkatapos ay na XML sa huli ay transformed sa HTML sa pamamagitan ng XSLT.  Mayroong maraming mga jQuery kasangkot, isa bit na kung saan ipinapatupad ng ilang mga pag-andar tabbing.  Kapag nag-click ka sa isang tab (talaga, isang <div>), jQuery invokes. itago() at. palabas() sa iba't-ibang mga divs (ang paunang pag-load ng pahina Dina-download ang lahat ng mga nilalaman sa gayon walang mga postbacks sa kasong ito).

Ang isang grupo ng mga oras ang nakalipas, ang tab paglipat logic nagsimulang kumilos erratically at hindi ito ay magpapakita ng isa sa aking mga tab.  Ako sa huli sinubaybayan ito pababa sa ang katunayan na ang internet explorer (kahit) naisip na ang <div> mga tag nested malayo, malayo mas malalim kaysa intended.The developer toolbar ay magpapakita ng:

-<div id = "Tab1Content">
  -<div>
    -<div>
      -<div id = "Tab2Content">
        -<div>
           ..............................
                   </div>  <-Sa wakas ay nagpapakita ng ito ay sarado ang lahat ng paraan ang down dito!

Kaya, kung ginawa ko ang isang $("# Tab1Content").itago(), Gusto ko ring itago Tab2 at hindi ko maaaring magpakita Tab2 kung hindi ko ring ipakita Tab1.  Ako kopyahin at ilagay ang code hanggang sa visual studio at ito ay nagpakita ng lahat ng lining ang div up ni mabuti, tulad lang nila na ipagpalagay na paggawa, naghahanap ng ganito:

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

Matalo ko ang aking ulo laban sa mga pader para sa isang habang at napansin na sa aktwal na code ng HTML ay bumubuo ng maraming laman <div> mga tag, katulad:

<katawan>

  <div id = "Tab1Content">

    <div id = "ROW1" />
    <div id = "ROW2" />

  </div>

  <div id = "Tab2Content">

    <div id = "ROW1" />
    <div id = "ROW2" />

  </div>

</katawan>

(Sa itaas ay waaaaaaaaaaaay oversimplified.  Ang walang laman div tag ay lubos wastong. Ang ilan sa aking <div> mga tag ay puno ng mga nilalaman, ngunit marami pa ay hindi.  Ako ay dumating sa pagtanto na ang aking <xsl:para sa-bawat> mga kautusan ay nagpapalabas ng mga short-form na tag div kapag ang xsl:para-sa-bawat ay hindi 'makahanap ng anumang data.  Pinilit ako ng isang HTML komento sa output, tulad ng ipinapakita:

image

 

Pagkatapos kong gumawa niyan, lahat ng div ay ang naka-linya up mabuti at ang aking tab Paglipat nagsimula nagtatrabaho.

Tulad ng nakasanayan, Umaasa ako na ito ay tumutulong sa isang tao sa isang pakurot.

</dulo>

Mag-subscribe sa aking blog.

Sundin ako sa Twitter sa http://www.twitter.com/pagalvin

Mabilisang pag-aayos: "$ Resources Ang pangalan ng uri ng nilalaman ':ReportServerResources … hindi maaaring maglaman ng … mga espesyal na character”

Ako gumagasta ng ilang oras paglilinis up ng isang SharePoint 2010 site at ang isa sa mga isyu sa cleanup nauugnay sa isang corrupt / mali ang naka-install SQL Server Report Serbisyo isyu.  Ang isyu na lumitaw kapag ang isa sa aking mga kasamahan sinubukan upang i-save ang isang site bilang isang template at pagkatapos ay lumikha ng lumikha ng isang bagong site batay sa mga template na.  Ang operasyon save nagtrabaho fine, ngunit kapag siya ay sinubukan upang lumikha ng bagong site, SharePoint ipinapakita ang mga sumusunod na mensahe ng error:

Mali

$ Mga Mapagkukunan Ang nilalaman uri ng pangalan ':ReportServerResources,DataSourceContentTypeName;Hindi 'maaaring maglaman ng: \ / : * ? " # % < > { } | ~ & , dalawang magkakasunod na panahon (..), o espesyal na mga character tulad ng isang tab.

Narito ang isang screen cap:

 

image

Ako ay nagkaroon ng isang pagtingin sa mga uri ng nilalaman sa site at natagpuan na ito:

image

Yaong mga uri ng nilalaman ay malinaw na hindi malusog.

Isyu na ito ay tila upang makabuo ng maraming sa Internets at doon ay hindi mukhang maging isang solong pinagkaisahan sa kung paano malutas ito.  May nakita akong isang madaling gamitin na talahanayan na nai-map ang masamang nilalaman pangalan ng uri ng mahusay na mga pangalan ng uri ng nilalaman dito: http://social.technet.microsoft.com/Forums/en-ZA/sharepoint2010programming/thread/cb03e866-8184-4943-acfe-cafffa1b8b7a.  Ko nang manu-mano-update ang mga ito thusly:

image

(BrightStarr sa pangalan ay malinaw naman opsyonal, ngunit hindi ito maaaring makapinsala sa ngiti )

Ito pinapayagan sa akin upang lumikha ng isang bagong template at hindi masira ang anumang bagay sa iba pang mga site, kabilang ang ilang mga bagay-bagay PerformancePoint Server na isang ganap na naiibang mga pangkat ng mga tao ay nagtatrabaho sa.  Ako ay pagkatapos ay magagawang lumikha ng isang bagong site sa template.  Tagumpay!

Hindi ako sigurado na ito ay isang 100% solusyon, ngunit ito nakuha sa akin at sa lahat ng tao na kasangkot nakalipas na ito nakakainis na error.  Kung nalaman ko kahit ano bagong, Kukunin ko mag-post ng update.  Aking nerbiyos Nagmumula ang katunayan na ang mga pangalan na ito ay hindi dapat maging mali sa unang lugar at sa pamamagitan ng pag-aayos ng mga display name, Hindi ako ng pagpindot sa panloob na pangalan. 

</dulo>

Mag-subscribe sa aking blog.

Sundin ako sa Twitter sa http://www.twitter.com/pagalvin

Isa Dahilan para sa "Ang mga tagalikha ng kasalanan na ito ay hindi tukuyin ang isang Dahilan.”

Ko na na-paggawa ng maraming trabaho sa SharePoint paghahanap kani-kanina lamang at partikular ang KeywordQuery na klase, katangian at mga pamamaraan.

Kung nais sa iyo resulta ang itakda upang bumalik ang mga resulta sa itaas at lampas ang mga dati suspects (makikita dito), mong idagdag ito sa koleksyon SelectedProperties, tulad ng sa:

myKeywordQuery.SelectProperties.Add("xyzzy");

Maraming salamat at isang dulo ng sumbrero sa Corey Roth at ito sobrang sobra helpful post ng blog (http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2008/02/19/how-to-use-the-moss-enterprise-search-keywordquery-class.aspx)

Sa aking kaso, "Xyzzy" ay hindi talagang isang pinamamahalaang mga ari-arian.  Kapag idinagdag ko ito sa mga SelectedProperties pa rin, SharePoint threw isa sa aking paboritong kailanman runtime eksepsiyon:

"Ang lumikha ng kasalanan na ito ay hindi tukuyin ang isang Dahilan."

Gusto ko lalo na ang capital "R" sa Dahilan.  Ito iyan sa akin tulad ng. NET na katumbas ng "Mayroon akong walang bibig, at dapat ko mapasigaw."

</dulo>

Mag-subscribe sa aking blog.

Sundin ako sa Twitter sa http://www.twitter.com/pagalvin

Madaling gamitin Reference: Mga default Resulta mula sa KeywordQuery Search

Kapag pakiusapan mo ang Ipatupad() paraan sa isang KeywordQuery, Maaari kang lumikha ng isang ResultTable batay sa ResultType.RelevantResults.  Ang code snippet na ito ay naglalarawan kung ano ang ibig sabihin ko:

ResultTableCollection resultsTableCollection = myKeywordQuery.Execute();

ResultTable searchResultsTable = resultsTableCollection[ResultType.RelevantResults];

Ang resultang talahanayan ay ang mga sumusunod na hanay ng impormasyon: 

WorkId
Ranggo
Pamagat
May-akda
Laki
Landas
Paglalarawan
Sumulat
SiteName
CollapsingStatus
HitHighlightedSummary
HitHighlightedProperties
Contentclass
IsDocument
PictureThumbnailURL
ServerRedirectedURL

Nakuha ko ito mula sa listahan ng SharePoint 2010 kapaligiran, enterprise edition.  Sana ito ay maging madaling-magamit na sa isang tao sa hinaharap.

</dulo>

Mag-subscribe sa aking blog.

Sundin ako sa Twitter sa http://www.twitter.com/pagalvin

Isa Dahilan para sa: "Nabigong kunin ang taksi file sa solusyon”

Habang nagtatrabaho sa isang visual na proyekto na bahagi ng web ng talyer ngayon, Ginawa ko ang isang menor de edad na re-org ng ilang mga file ay ilagay sa folder _layouts bilang bahagi ng proseso ng pagpa-andar. Tiyakan, Pangalanan ko ng isang js file mula sa "TypeAhead.js" sa "TypeAhead(luma).js "  Plano ko upang maalis ito sa lalong madaling panahon ng kanyang kahalili sa "TypeAhead.js" nagpapatunay tama.  Ito ay tumingin tulad nito:

image

Ito agad sanhi ng isang problema sa visual talyer kapag sinubukan ko upang lumawak ang proyekto:

Error occurred in deployment step ‘Add Solution’: Nabigong kunin ang taksi file sa solusyon.

Ito ay lumiliko out na hindi ka dapat maglagay ng panaklong sa mga pangalan ng file.  Inalis ko ang mga parens at na malutas ang problema.

</dulo>

Mag-subscribe sa aking blog.

Sundin ako sa Twitter sa http://www.twitter.com/pagalvin

Pa Higit pang jQuery–Baguhin ang laki ng isang Halimbawa ng Imahe

Ako minana isang web bahagi mula sa lumang vendor isang kliyente at ito ay may isang imahe problema laki.  Ang mga imahe ay dapat na 60×50 ngunit para sa ilang mga gansal dahilan, ang orihinal na vendor pinilit ang mga ito sa 42×42, kaya tumingin sila lapirat:

 

Magandang Imahe

Masamang Imahe

Narito ang markup (medyo pinagaan):

<talahanayan class = 'extended-kuro'>
  <thead>
    <tr>
      <ika  width = '100′>3 Martes</ika>
    </tr>
  </thead>

  <tbody>
    <tr class = 'forecast'>
      <td width = '100′>
        <st>
          <li class = 'mataas'>Mataas: 72&mo;F</li>
          <li class = 'mababa'>Mababa: 44&mo;F</li>
          <li class = 'kondisyon'>Maaraw
            <img SRC =’
http://deskwx.weatherbug.com/images/Forecast/icons/localized/60×50/en/trans/cond007.png’ width = '42’ taas = '42’ alt =” />
          </li>
        </st>
      </td>
    </tr>

  </tbody>

</talahanayan>

Makikita mo tandaan na kahit na ang path sa mismong imahe Ipinapakita ang tamang sukat (60×50) ang orihinal na vendor sapilitang ito sa 42×42.  Bakit?  Basag ang pula.

Gayon pa man, Nais kong isang mabilis at madaling solusyon sa isyung ito at ako ay sumangguni sa jQuery.  Bilis ng kamay ay upang mahanap ang lahat ng mga naaangkop na <img> mga tag.  Hindi ko nais upang putik tungkol sa anumang iba pang img tag (kung saan mayroong maraming).  Ito bit ng jQuery ginawa ang bilis ng kamay:

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

<script type="text/javascript">
     $(dokumento).nakahanda(tungkulin () {

         $(‘li.condition > img ').bawat(tungkulin (talatuntunan, bagay)
           
{
             $(bagay).css("width", "60"); 
             $(bagay).css("height", "50");
            });
     }); // sa dokumento ng pag-load
</script>

Iyon bit ng code na nakakahanap ng mga koleksyon <li> mga tag na ang klase ay "kalagayan" at <img> mga bata.  Ito pagkatapos iterates sa pamamagitan ng lahat ng iyon.  Nagtrabaho tulad ng isang kagandahan.

Kaya kong marahil streamline ito, ngunit ako ay hindi kailanman ay isang uri ng Unix tao na malutas sa π upang 18 digit katumpakan gamit SED at awk at ako ay hindi na uri kung jQuery tao alinman sa ngiti.

</dulo>

Mag-subscribe sa aking blog.

Sundin ako sa Twitter sa http://www.twitter.com/pagalvin

Pag-parse ng XML sa LINQ

Narito ang isang mabilis na halimbawa ng paggamit LINQ i-parse ang ilang mga  XML at makakuha sa matamis, matamis na mga katangian sa ganyang bagay.

Narito ang XML na gusto kong i-parse:

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

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

    <PageLayout name="xyzzy2">
      <Mga Tab>
        <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"/>
      </Mga Tab>
    </PageLayout>

  </PageLayouts>
</DeafultConfigurationSets>

Gusto kong bumuo ng ilang mga tab sa runtime sa pamamagitan ng pag-parse ng sa itaas.  Aking mga tab ay depende sa oras ng layout ng pahina.  Kung ang pangalan ng aking pahina layout ay "xyzzy2" pagkatapos Gusto kong makakuha ng mga tab 100, 101 at 103 (ang mga tab sa <PageLayout name = "xyzzy2">).

Narito ang LINQ na ginagawa nito:

ay allTabs =
              mula sa p
                  XElement.Parse(theXmlToParse).
                 
Mga Sangkap("PageLayouts").
                  Mga Sangkap("PageLayout")
              saan (p.Attribute("name").Value.Equals("xyzzy2"))
              m mula sa p.Elements("Tabs").Mga Sangkap("Tab")
              piliin m;

          Results.Text = string.Empty;

          foreach (ay ATAB sa allTabs)
          {
              Results.Text =
                  "Tab Order: " + aTab.Attribute("TabOrder").Halaga + " |" +
                  "Tab Label: " + aTab.Attribute("TabLabel").Halaga + " | " +
                  "SharePointContentType: " + aTab.Attribute("SharePointContentType").Halaga + " | " +
                  "AdditionalConstraints: " + aTab.Attribute("AdditionalConstraints").Halaga + "\r";
          }

Sa itaas, ang variable na "theXmlToParse" ay isang string variable, ngunit maaari mong gamitin ang pag-load() pamamaraan sa isang stream kung gusto mo.

"Mga Resulta" ay isang label sa isang web form at kapag ang code na ito executes, ito ganito ang hitsura:

SNAGHTML11cd2e7c

Hindi ko pa nagtrabaho out kung paano i-uri-uriin ang mga resulta pa, kaya makikita ko bang iwan na para sa isang hinaharap na post sa blog.

</dulo>

Mag-subscribe sa aking blog.

Sundin ako sa Twitter sa http://www.twitter.com/pagalvin

SharePoint 2010 KeywordQuery at Anonymous mga gumagamit

Napagana ko ng anonymous access sa aking site upang subukan ang isang bahagi ng web ng paghahanap ko na ay ang pagbuo at walang magandang sorpresa, hindi ito ay lubos na gumagana.  Anonymous access ay medyo magkano palaging isang hamon para sa akin.

Sa kasong ito, ang unang paghahanap ay hindi tumatakbo para sa ilang kadahilanan.  Ang dapat kong sabihin na ito ay tumatakbo ngunit hindi ito ay bumabalik na anumang mga resulta.  Ako gamit ang KeywordQuery para sa display na unang.

Ginawa ko ang isang mabilis na paghahanap at ang blog post na ito sa pamamagitan ng "sowmyancs"Dumating up medyo mabilis: "SharePoint 2010 Hanapin: hindi nagpapakita ng anumang mga resulta para sa mga hindi kilalang gumagamit?"  Na blog entry na naglalarawan sa problema mula sa isang out ng kahon ng paghahanap sa keyword pananaw ngunit pag-uugali ang noon ay katulad sa minahan - ito ay nagtrabaho para sa sa napatotohanan mga gumagamit at para sa hindi kilalang mga gumagamit, ngunit hindi kilalang gumagamit kayong walang mga resulta. 

Sinundan ko ang mga tagubilin at putok!  Malutas ito ang aking isyu.  Hindi ako sigurado kung ano ang epekto na ito ay may at maaaring sila ay patunayan na maging isang problema, ngunit ang maikling kataga ng resulta ay nakakatulong.

Mag-click sa pamamagitan ng blog:

image

</dulo>

Mag-subscribe sa aking blog.

Sundin ako sa Twitter sa http://www.twitter.com/pagalvin

SharePoint 2010 KeywordQuery at ang HiddenConstraints Property

Ako ay paggawa ng isang bit ng trabaho sa KeywordQuery bagay sa SharePoint 2010 at paggawa ng paggamit ng HiddenConstraints ari-arian.

Hindi ko mahanap ang anumang kaagad nakakatulong na impormasyon sa ang na ari-arian, kaya naisip ko gusto ko mabilis isulat kung paano ko na na ang paggamit nito.

Bilang malayo bilang maaari kong sabihin, ito ay isang awtomatikong pagpilit na idinagdag sa query sa gayon ay maaari mong ayusin ng park doon at hindi mag-alala tungkol dito.  Sarili, ito ay lamang ng isa pang keyword (o magtakda ng mga keyword) at modifiers na maaari mong i-type sa ang UI kapag ginawa mo ang isang keyword sa paghahanap.  Narito ang isang halimbawa:

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

Maaari kang magdagdag ng karagdagang mga hadlang sa isang puwang delimiter.

keywordQuery.HiddenConstraints = "scope:\"Industry\" defense";

Sa itaas ay sinasabi sa Ingles, "Tumakbo ang isang keyword na query na naghahanap para sa" pagtatanggol "at tangi sa roon, gamitin ang "Industry" na saklaw.

Narito ang isa pang paraan ng pagtingin sa dito:

image

Ako ay gamitin ito upang magbigay ng isang konteksto-umaasa awtomatikong saklaw sa isang pasadyang bahagi ng web.  Kapag ang gumagamit ay pag-click sa isang tab at pag-click ng isang search button, ang tab ng dictates ng isang partikular na saklaw ng paghahanap.  Ito ay mahusay na gumagana sa ngayon.

</dulo>

Mag-subscribe sa aking blog.

Sundin ako sa Twitter sa http://www.twitter.com/pagalvin

Halimbawa: Ng XSLT Paglikha ng HTML href ng

Ko na ay paggawa ng isang bit ng XSL bagay-bagay kani-kanina lamang at naisip Gusto ko magkasama ng isang sample para sa aking hinaharap reference at na maaaring ng halaga sa lahat sa atin XSLT-ers paggawa ng isang buhay sa internets.

Isaalang-alang ang mga sumusunod na XML:

<FdcSearchTabsCollection Count="2">
  <SearchTab Label="Industry" SortOrder=”00” Label=”Industries” SearchConstraints="contenttype:Industrya" TabID="831b2a74-98c4-4453-8061-86e2fdb22c63"/>
  <SearchTab Label="Practices" SortOrder=”01” Label=”Practices” SearchConstraints="contenttype:PracticeGroups" TabID="678e206b-6996-421f-9765-b0558fe1a9c0"/>
</FdcSearchTabsCollection>

Ang mga sumusunod na snippet XSL ay bumuo ng isang pinagsunod-sunod na listahan ng mga tab sa HREF:

<xsl:template match="FdcSearchTabsCollection" xml:space="preserve">
   
    <!– The "all" tab –>
    <a href="javascript:ViewTab(‘All’)">Tingnan ang lahat ng</isang>
   
    <!– Bawat indibidwal na tab –>
    <!– Umulit sa pamamagitan ng lahat ng mga tab at ipakita ang tamang  mga link. –>
    <xsl:for-each select="SearchTab">
      <xsl:sort select="@SortOrder"/>

      …
      <a href="javascript:ViewTab('{@ TabID}')"><xsl:value-of select="@Label"/></isang>
    </xsl:para sa-bawat>

    <br /> 
   

   </xsl:template>

Narito ang kung ano ang tila sa SharePoint:

SNAGHTML78aa2cb

 

 

</dulo>

Mag-subscribe sa aking blog.

Sundin ako sa Twitter sa http://www.twitter.com/pagalvin