maandelikse Argiewe: Mei 2011

Nog Meer jQuery–Grootte van 'n image Voorbeeld

Ek geërf het van 'n web deel van 'n kliënt se ou ondernemer en dit het 'n beeld grootte probleem.  Die beelde is 60×50 maar vir sommige vreemd rede, die oorspronklike verskaffer gedwing om hulle in 42×42, so kyk hulle platgedruk:

 

N goeie beeld

Slegte beeld

Hier is die winsgrens (ietwat vereenvoudigde):

<table class = "Gevorderde-vooruitsigte>
  <thead>
    <tr>
      <ste  width = '100′>3 Dinsdag</ste>
    </tr>
  </thead>

  <tbody>
    <tr class = "voorspelling">
      <td width = '100′>
        <Straat>
          <li class = 'n hoë>Hoë: 72&jy;F</li>
          <li class = "low">Lae: 44&jy;F</li>
          <li class = "toestand">Sunny
            <img src =’
http://deskwx.weatherbug.com/images/Forecast/icons/localized/60×50/en/trans/cond007.png’ width = '42’ hoogte = '42’ alt =” />
          </li>
        </Straat>
      </td>
    </tr>

  </tbody>

</tafel>

Jy sal let dat hoewel die pad na die beeld self toon die korrekte dimensie (60×50) die oorspronklike verskaffer gedwing om dit in 42×42.  Hoekom?  Crazy.

In elk geval, Ek wou 'n vinnige en maklike oplossing vir hierdie kwessie en ek draai om jQuery.  Die geheim is om almal op te spoor van die toepaslike <img> tags.  Ek het nie wil die muck oor met enige ander img tags (wat daar is baie).  Hierdie bietjie van die jQuery het die truuk:

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

<script type = "text / JavaScript">
     $(dokument).gereed(funksie () {

         $(‘li.condition > img ").elke(funksie (indeks, item)
           
{
             $(item).css("Width", "60"); 
             $(item).css("Hoogte", "50");
            });
     }); // dokument vrag
</script>

Daardie bietjie van die kode bevind dat die versameling <li> tags wie se klas is "toestand" en <img> kinders.  Dit iterate dan deur alles.  Soos 'n bom gewerk.

Ek kon dit waarskynlik meer vaartbelyn, maar ek was nog nooit die soort van die unix man wat opgelos π aan 18 syfers presisie met sed en AWK en ek is nie daardie soort indien jQuery man Smile.

</einde>

Skryf in op my blog.

Volg my op Twitter http://www.twitter.com/pagalvin

Ontleding van XML met linQ

Hier is 'n vinnige voorbeeld gebruik van linQ 'n paar te ontleed  XML en kry by die lieflike, soet eienskappe daarin.

Hier is die XML wat ek wil ontleed:

<?die xml weergawe = "1,0" encoding = utf-8" ?>
<DeafultConfigurationSets>
  <PageLayouts>

    <PageLayout name = "Xyzzy">
      <Tabs>
        <Tab TabOrder = "1" TabLabel = "x" SharePointContentType = "'n" AdditionalConstraints = "AC1" />
        <Tab TabOrder = "2" TabLabel = "y" SharePointContentType = "b" AdditionalConstraints = "AC2" />
      </Tabs>
    </PageLayout>

    <PageLayout name = "xyzzy2">
      <Tabs>
        <Tab TabOrder = "100" TabLabel = "x" SharePointContentType = "'n" AdditionalConstraints = "AC1" />
        <Tab TabOrder = "101" TabLabel = "y" SharePointContentType = "b" AdditionalConstraints = "AC2" />
        <Tab TabOrder = "103" TabLabel = "z" SharePointContentType = "C" AdditionalConstraints = "AC3" />
      </Tabs>
    </PageLayout>

  </PageLayouts>
</DeafultConfigurationSets>

Ek wil n paar tabs tydens looptyd deur die ontleding van die bogenoemde op te bou.  My oortjies hang af op 'n bladuitleg.  As my bladuitleg se naam is "xyzzy2" dan wil ek weet oortjies te kry 100, 101 en 103 (die tabs in <PageLayout name = "xyzzy2">).

Hier is die linQ wat doen dit:

allTabs =
              vanaf P
                  XElement.Parse(theXmlToParse).
                 
Elemente("PageLayouts").
                  Elemente("PageLayout")
              waar (p.Attribute("Naam").Value.Equals("Xyzzy2"))
              van m in p.Elements("Tabs").Elemente("Tab")
              kies m;

          Results.Text = string.Empty;

          foreach (ATAB is allTabs)
          {
              Results.Text =
                  "Tab Bestel: " + aTab.Attribute("TabOrder").Waarde + " |" +
                  "Etiket: " + aTab.Attribute("TabLabel").Waarde + " | " +
                  "SharePointContentType: " + aTab.Attribute("SharePointContentType").Waarde + " | " +
                  "AdditionalConstraints: " + aTab.Attribute("AdditionalConstraints").Waarde + " R";
          }

In die bogenoemde, die wisselende "theXmlToParse" is 'n string veranderlike, maar jy kan gebruik om die las() metode op 'n stroom as jy wil.

"Resultate" is 'n etiket op 'n web vorm en wanneer hierdie kode uitvoer, Dit lyk soos volg:

SNAGHTML11cd2e7c

Ek het nog nie uitgewerk hoe om die resultate nog te sorteer, so ek sal laat dit vir 'n toekomstige blog post.

</einde>

Skryf in op my blog.

Volg my op Twitter http://www.twitter.com/pagalvin