Monatliche Archive: Mai 2011

Noch mehr jQuery–Ändern der Größe eines Bild-Beispiel

Eine alte Clienthersteller einen Webpart geerbt und es hat ein Imageproblem Größe.  Die Bilder sollten 60×50 aber aus irgendeinem Grund, der ursprüngliche Hersteller gezwungen, in 42×42, So suchen sie gequetscht:

 

Gutes Bild

Schlechtes Image

Hier befindet sich das markup (etwas vereinfacht):

<table Class = "erweitert-Outlook">
  <THEAD>
    <TR>
      <Th  Breite = 100′>3 Dienstag</Th>
    </TR>
  </THEAD>

  <TBODY>
    <TR-Klasse = 'Prognose'>
      <td Width = 100′>
        <UL>
          <Li Class = 'hoch'>Hoch: 72&DEG;F</Li>
          <Li Class = "niedriger">Niedrig: 44&DEG;F</Li>
          <Li Class = 'Zustand'>Sonnig
            <Img Src =’
http://deskwx.WeatherBug.com/images/Forecast/Icons/Localized/60×50/en/Trans/cond007.png’ Breite = 42’ Höhe = 42’ Alt =” />
          </Li>
        </UL>
      </TD>
    </TR>

  </TBODY>

</Tabelle>

Sie werden feststellen, dass obwohl die Pfad zu dem Bild selbst zeigt die richtige dimension (60×50) der ursprüngliche Hersteller gezwungen es 42×42.  Warum?  Verrückt.

Auf jeden Fall, Ich wollte eine schnelle und einfache Lösung für dieses Problem und ich wandte mich an jQuery.  Der Trick bestand darin, alle entsprechenden finden <IMG> Markierungen.  Ich wollte nicht mit anderen Img Tags Dreck über (davon gibt es viele).  Dieses Bit von jQuery Tat die Tücke:

<Skript-Typ = "Text/Javascript" Src ="http://AJAX.googleapis.com/AJAX/libs/jQuery/1.5/jQuery.Min.js"></Skript>

<Skript-Typ = "Text/Javascript">
     $(Dokument).bereit(Funktion () {

         $(' li.condition > Img').jeder(Funktion (Index, Artikel)
           
{
             $(Artikel).CSS("Breite", "60"); 
             $(Artikel).CSS("Höhe", "50");
            });
     }); // auf Dokument laden
</Skript>

Das Bit des Codes wird die Auflistung <Li> Markierungen, deren Klasse ist "Bedingung" und <IMG> Kinder.  Dann durchläuft es all das.  Wirkten gefällt ein Anmut.

Ich konnte es wahrscheinlich optimieren, aber ich war nie einer der Unix-Typ, das π gelöst An 18 Ziffern Genauigkeit mit Sed und Awk und ich bin nicht diese Art, wenn jQuery entweder Kerl Lächeln.

</Ende>

Onnieren Sie meinen Blog ab.

Folgen Sie mir auf Twitter bei http://www.twitter.com/pagalvin

Analysieren von XML mit LINQ

Hier ist ein kurzes Beispiel einige analysieren mit LINQ  XML und steigen an der süßen, süße Attribute darin.

Hier ist das XML analysieren möchte:

<?XML Version = "1.0" Encoding = "Utf-8" ?>
<DeafultConfigurationSets>
  <PageLayouts>

    <Pagelayout-Name = "Xyzzy">
      <Registerkarten>
        <Registerkarte TabOrder = "1" TabLabel = "X" SharePointContentType = "a" AdditionalConstraints = "ac1" />
        <Registerkarte TabOrder = "2" TabLabel = "y" SharePointContentType = "b" AdditionalConstraints = "ac2" />
      </Registerkarten>
    </PageLayout>

    <PageLayout-Name = "xyzzy2">
      <Registerkarten>
        <Registerkarte TabOrder = "100" TabLabel = "X" SharePointContentType = "a" AdditionalConstraints = "ac1" />
        <Registerkarte TabOrder = "101" TabLabel = "y" SharePointContentType = "b" AdditionalConstraints = "ac2" />
        <Registerkarte TabOrder = "103" TabLabel = "Z" SharePointContentType = "c" AdditionalConstraints = "ac3" />
      </Registerkarten>
    </PageLayout>

  </PageLayouts>
</DeafultConfigurationSets>

Ich möchte einige Registerkarten zur Laufzeit von der Analyse der oben genannten aufzubauen.  Meine Tabs hängt ein Seitenlayout.  Wenn meine Seitenlayout-Namen "xyzzy2" ist, dann ich Tabs will 100, 101 und 103 (die Registerkarten im <PageLayout-Name = "xyzzy2">).

Hier ist die LINQ, die es tut:

Var AllTabs =
              von p in
                  XElement.Parse(theXmlToParse).
                 
Elemente("PageLayouts").
                  Elemente("PageLayout")
              wo (p.Attribute("Name").Value.Equals("xyzzy2"))
              von m in p.Elements("Tabs").Elemente("Tab")
              Wählen Sie m;

          Results.Text = Zeichenfolge.Leer;

          foreach (Var aTab in allTabs)
          {
              Results.Text =
                  "Tab-Reihenfolge: " + aTab.Attribute("TabOrder").Wert + " |" +
                  "Registerkarte Beschriftung: " + aTab.Attribute("TabLabel").Wert + " | " +
                  "SharePointContentType: " + aTab.Attribute("SharePointContentType").Wert + " | " +
                  "AdditionalConstraints: " + aTab.Attribute("AdditionalConstraints").Wert + "r";
          }

In den oben genannten, die Variable "TheXmlToParse" ist eine String-variable, Sie können jedoch die Belastung() Methode auf einen Stream, wenn du magst.

"Ergebnisse" ist eine Bezeichnung für ein Web Form, und wenn dieser Code ausgeführt wird, Es sieht wie folgt aus:

SNAGHTML11cd2e7c

Ich habe nicht gearbeitet, wie man die Ergebnisse noch sortieren, also lasse ich das für eine zukünftige Blog-post.

</Ende>

Onnieren Sie meinen Blog ab.

Folgen Sie mir auf Twitter bei http://www.twitter.com/pagalvin