Archives mensuelles: Mai 2011

Encore plus de jQuery–Redimensionner l'Image par exemple

J'ai hérité un composant WebPart de vieux vendeur de son client et elle a un problème de taille des images.  Les images doivent être 60×50 mais pour une raison étrange, le vendeur initial les contraint à 42×42, ils cherchent donc écrasés:

 

Bon Image

Mauvaise Image

Voici le balisage (quelque peu simplifiées):

<Tableau de classe = « étendu-outlook »>
  <THEAD>
    <TR>
      <Th  largeur = 100′>3 Mardi</Th>
    </TR>
  </THEAD>

  <tbody>
    <classe TR = « prévisions »>
      <largeur de TD = 100′>
        <UL>
          <classe Li = « high »>Haute: 72&deg;F</Li>
          <classe Li = « faible »>Faible: 44&deg;F</Li>
          <classe Li = « condition »>Sunny
            <img src =’
http://deskwx.Weatherbug.com/images/Forecast/Icons/localized/60×50/en/trans/cond007.PNG’ largeur = 42’ hauteur = 42’ Alt =” />
          </Li>
        </UL>
      </TD>
    </TR>

  </tbody>

</table>

Vous remarquerez que même si la chemin d'accès à l'image de soi montre la bonne dimension (60×50) le fournisseur original l'a forcé à 42×42.  Pourquoi?  Crazy.

De toute façon, Je voulais une solution rapide et facile à cette question et je me tournai vers jQuery.  Le truc est de localiser toutes les <img> balises.  Je ne voulais pas muck avec les autres balises img (dont il existe de nombreux).  Ce bit de jQuery a fait le truc:

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

<script type = « text/javascript »>
     $(document).prêt(fonction () {

         $(' li.condition > img »).chaque(fonction (index, élément)
           
{
             $(élément).CSS(« largeur », « 60 »); 
             $(élément).CSS(« hauteur », « 50 »);
            });
     }); // le chargement du document
</script>

Que le bit de code trouve la collection <Li> balises dont la classe est « condition » et <img> enfants.  Puis itère tout cela.  A fonctionné comme un charme.

Je pourrais probablement simplifier il, mais j'ai jamais été un genre de guy unix résoudre π À 18 précision de chiffres à l'aide de sed et awk et je ne suis pas ce genre si jQuery guy soit Sourire.

</fin>

S'abonner à mon blog.

Me suivre sur Twitter à http://www.twitter.com/pagalvin

L'analyse de XML avec LINQ

Voici un exemple rapide à l'aide de LINQ pour analyser certains  XML et au bonbon, Sweet des attributs qui y sont.

Voici le code XML je veux analyser:

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

    <PageLayout nom = « xyzzy »>
      <Onglets>
        <Onglet TabOrder = "1" TabLabel = "x" SharePointContentType = "un" AdditionalConstraints = « ac1 » et>
        <Onglet TabOrder = "2" TabLabel = y »" SharePointContentType = « b" AdditionalConstraints = « ac2 » />
      </Onglets>
    </PageLayout>

    <PageLayout nom = « xyzzy2 »>
      <Onglets>
        <Onglet TabOrder = "100" TabLabel = "x" SharePointContentType = "un" AdditionalConstraints = « ac1 » et>
        <Onglet TabOrder = 101 »" TabLabel = y »" SharePointContentType = « b" AdditionalConstraints = « ac2 » />
        <Onglet TabOrder = 103 »" TabLabel = "z" SharePointContentType = c »" AdditionalConstraints = « ac3 » />
      </Onglets>
    </PageLayout>

  </PageLayouts>
</DeafultConfigurationSets>

Je veux construire certains onglets lors de l'exécution par l'analyse de ce qui précède.  Mes onglets dépendent d'une mise en page.  Si nom du ma mise en page n'est « xyzzy2 » alors je veux avoir des onglets 100, 101 et 103 (les onglets de <PageLayout nom = « xyzzy2 »>).

Voici le LINQ qui fait:

var allTabs =
              de p dans
                  XElement.Parse(theXmlToParse).
                 
Éléments(« PageLayouts »).
                  Éléments(« PageLayout »)
              où (p.Attribute(« nom »).Value.Equals(« xyzzy2 »))
              de m à p.Elements(« Onglets »).Éléments(« Tab »)
              Sélectionnez m;

          Results.Text = string.Vide;

          foreach (aTab var en allTabs)
          {
              Results.Text =
                  "Ordre de tabulation: " + aTab.Attribute(« TabOrder »).Valeur + " |" +
                  "Étiquette de l'onglet: " + aTab.Attribute(« TabLabel »).Valeur + " | " +
                  « SharePointContentType: " + aTab.Attribute(« SharePointContentType »).Valeur + " | " +
                  « AdditionalConstraints: " + aTab.Attribute(« AdditionalConstraints »).Valeur + « r »;
          }

Dans ce qui précède, la variable « theXmlToParse » est une variable de chaîne, mais vous pouvez utiliser la charge() méthode sur un cours d'eau si vous le souhaitez.

« Résultats » sont une étiquette sur un formulaire web et lorsque ce code s'exécute, Il ressemble à ceci:

SNAGHTML11cd2e7c

Je n'ai pas travaillé sur comment trier les résultats encore, donc je vous laisse que pour un futur blog.

</fin>

S'abonner à mon blog.

Me suivre sur Twitter à http://www.twitter.com/pagalvin