maandelijkse archieven: Mei 2011

Nog meer jQuery–Een voorbeeld van de Image Resize

Ik een webonderdeel geërfd van de oude leverancier van een klant en het heeft een imagoprobleem grootte.  De beelden moeten worden 60×50 maar voor sommige vreemde reden, de originele leverancier hen gedwongen 42×42, dus kijken ze geplet:

 

Goed imago

Slecht beeld

Hier is de markering (enigszins vereenvoudigd):

<tabel klasse = 'uitgebreid-outlook'>
  <THEAD>
    <tr>
      <th  breedte ='100′>3 Dinsdag</th>
    </tr>
  </THEAD>

  <TBODY>
    <klasse tr = 'forecast'>
      <TD breedte ='100′>
        <UL>
          <Li klasse = 'hoog'>Hoge: 72&DEG;F</Li>
          <Li klasse = "laag">Lage: 44&DEG;F</Li>
          <Li klasse = 'voorwaarde'>Zonnig
            <img src =’
http://deskwx.WeatherBug.com/images/Forecast/icons/localized/60×50/en/trans/cond007.png’ breedte ='42’ hoogte ='42’ ALT =” />
          </Li>
        </UL>
      </TD>
    </tr>

  </TBODY>

</tabel>

U zult merken dat hoewel de pad naar de afbeelding zelf toont de juiste dimensie (60×50) de originele leverancier gedwongen het in 42×42.  Waarom?  Gek.

Hoe dan ook, Ik wilde een snelle en gemakkelijke oplossing voor dit probleem en ik draaide me om jQuery.  De truc was om te zoeken alle van de passende <img> Tags.  Ik wilde niet met alle andere img-tags over muck (dat zijn er veel).  Deze bits van jQuery did naar de truc:

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

<script type = "text/javascript">
     $(document).klaar(functie () {

         $(' li.condition > img').elke(functie (index, item)
           
{
             $(item).CSS("breedte", "60"); 
             $(item).CSS("hoogte", "50");
            });
     }); // op document laden
</script>

Dat beetje van code vindt de collectie <Li> Tags waarvan klasse is "voorwaarde" en <img> kinderen.  Vervolgens doorlopen dat allemaal.  Werkte als een charme.

Ik zou waarschijnlijk het stroomlijnen, maar ik was nooit een de soort unix-kerel die opgelost π Aan 18 cijfers precisie met behulp van sed en awk en ik ben niet dat soort als jQuery guy hetzij Glimlach.

</einde>

Abonneren op mijn blog.

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

Parsing XML met LINQ

Hier is een snelle voorbeeld met LINQ to parse sommige  XML en krijgen op de zoete, Sweet attributen daarin.

Hier is de XML ik wilt parseren:

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

    <PageLayout naam = "xyzzy">
      <Tabbladen>
        <Tabvolgorde tab = "1" TabLabel = "x" SharePointContentType = "een" AdditionalConstraints = "ac1" />
        <Tabvolgorde tab = "2" TabLabel = "y" SharePointContentType = "b" AdditionalConstraints = "ac2" />
      </Tabbladen>
    </PageLayout>

    <PageLayout naam = "xyzzy2">
      <Tabbladen>
        <Tabvolgorde tab = "100" TabLabel = "x" SharePointContentType = "een" AdditionalConstraints = "ac1" />
        <Tabvolgorde tab = "101" TabLabel = "y" SharePointContentType = "b" AdditionalConstraints = "ac2" />
        <Tabvolgorde tab = "103" TabLabel = "z" SharePointContentType = "c" AdditionalConstraints = "ac3" />
      </Tabbladen>
    </PageLayout>

  </PageLayouts>
</DeafultConfigurationSets>

Ik wil bouwen sommige tabbladen in runtime door de bovenstaande parseren.  Mijn tabbladen afhangen van een pagina-indeling.  Als mijn pagina-indeling de naam is "xyzzy2" dan wil ik krijgen tabbladen 100, 101 en 103 (de tabbladen in <PageLayout naam = "xyzzy2">).

Hier is de LINQ dat het doet:

var allTabs =
              van p in
                  XElement.Parse(theXmlToParse).
                 
Elementen("PageLayouts").
                  Elementen("PageLayout")
              waar (p.Attribute("naam").Value.equals("xyzzy2"))
              van m in p.Elements("Tabs").Elementen("Tab")
              Selecteer m;

          Results.text = string.Leeg;

          foreach (var aTab in allTabs)
          {
              Results.Text =
                  "Tabvolgorde: " + aTab.Attribute("Tabvolgorde").Waarde + " |" +
                  "Tab Label: " + aTab.Attribute("TabLabel").Waarde + " | " +
                  "SharePointContentType: " + aTab.Attribute("SharePointContentType").Waarde + " | " +
                  "AdditionalConstraints: " + aTab.Attribute("AdditionalConstraints").Waarde + "r";
          }

In het bovenstaande, de variabele "theXmlToParse" is een string-variabele, maar u kunt de belasting() methode op een stroom als je.

"Resultaten" is een label op een webformulier en wanneer deze code wordt uitgevoerd, het ziet er als volgt:

SNAGHTML11cd2e7c

Ik heb niet gewerkt uit hoe de resultaten nog sorteren, dus ik dat voor een toekomstig blogpost laat.

</einde>

Abonneren op mijn blog.

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