タグのアーカイブ: jQuery

XSLT と jQuery をサンプルします。

XSLT と jQuery と他の将来の役に立つことがありますいくつかのスニペットを共有するだろうと思ったの多くをしています。.

例 1: 簡単な JavaScript を出力します。 / XSLT で jQuery:

<xsl:テンプレート照合」何か =" xml:空間 ="preserve">

  <!– 空白クエリ フレンドリー フィルターの非表示フィールド –>
  <スクリプトの種類」テキスト/javascript」=>
    $(ドキュメント).準備ができて(関数(){
      $(「#QueryFriendlyFilters」).ヴァル(「空」);
    });
  </スクリプト>

</xsl:テンプレート>

ページの読み込みが完了するまで待機する JavaScript は、ビットを出力します。 (ため、 $(ドキュメント).準備ができて(…)) [名前セットを非表示フィールドの値 QueryFriendlyFilters をリテラル値に「空」.

例 2: 使用 <xsl:場合> 「より大きい」をチェックするには,  「より小さい」, など.

<xsl:テンプレート照合」何か =" xml:空間 ="preserve">

  <div id ="fdcAllFilters">
 
    <xsl:場合 test="@Count>0">
      <クラスにまたがる「fdcFilterLabel」=>現在のフィルター:</スパン>
    </xsl:場合>

    <!– 多くの原料をここに起こる. –>

</xsl:テンプレート>

上記のスニペット」、「何か」の要素のカウント」という名前属性が 0 より大きいどうかを確認します。  この背後にある XML のようなものになります。:”

<何かカウント =「5」/>

例 3: すべての要素を反復処理します。, jQuery の呼び出しを interspersing.

<!– すべてのフィルターを反復処理し、正しい表示  リンク. –>
<xsl:各選択 =「UserFilter」>

  <クラス「FilterHref =" href ="javascript:mySubmitPage(' RemoveUserFilter','{@ ID}’)">[X]</は>

  <クラスにまたがる「fdcFilterLabel」=><xsl:値の select="@FilterValue"/></スパン>

  <スクリプトの種類」テキスト/javascript」=>

    $(ドキュメント).準備ができて(関数(){
        <xsl:本文><![CDATA[$(「#QueryFriendlyFilters」).ヴァル( ($(「#QueryFriendlyFilters」).ヴァル() + " ]]></xsl:本文>\"<xsl:値の select="@FilterValue"/>\"<xsl:本文><![CDATA["));]]></xsl:本文>
    });

  </スクリプト>

</xsl:それぞれ>

上記のコードは最も複雑なですし、それをする簡単な方法がある可能性があります。.

この背後にある XML 大体次のように見える:

<UserFilter ID =「123」FilterValue"xyzzy"=/>

このスニペットを反復します。 <UserFilter> ノード。 

それを最初のアンカー出力をクリックするとタグ、ページに既に存在する JavaScript 関数を呼び出す, 「mySubmitPage」と、属性の値を渡すは <UserFilter> "ID"という名前のノード。 

[ページの読み込みに待機するいくつかの jQuery を出力します。  その jQuery FilterValue 属性の値を追加することによって「QueryFriendlyFilters」という名前は非表示のフィールドを更新します。  メモすべての狂気 <xsl:本文> と <![CDATA[ … ]]> もの.

それは, それに役立ちます願っています!

</終了>

私のブログを購読します。.

私は Twitter の上に従ってください。 http://www.twitter.com/pagalvin

Lists.asmx, GetListItems とフォルダー

私は誰が SharePoint の一部として提供されている今日、list.asmx web サービスのいくつかの研究をしていた 2010 (以前のバージョン).  彼女は、ルート フォルダーでリスト アイテムを取得することができた (サブフォルダーの名前を含む), サブフォルダーのアイテムを得ることができなかったが。  私はいくつかのインターネットを見て、それは驚くほど共通の質問です。  まだ, よい解答を簡単な質問を取得できませんでした。, 「私フォルダーを知っている場合, 方法でフォルダーの項目を取得します。?”  正直に言うと, 図のこの 1 つ私自身にはしばらくの間、私は以来私は一生懸命やっていません。 スマイル.

これを設定するには, 「ブログ シナリオ」という名前のサイトと「カスタム リストとサブ フォルダー」という名前のカスタム リストを作成します。  私は、という名前のフォルダーを作成:

  • 年 2005
  • 年 2006
  • 年 2007

」2006 年」のフォルダーにいくつかの項目が追加。  これはどのように見えるです。:

image

私の友人で c# コードを記述はないではなく Java を使用します。, SOAP エンベロープ彼女が本当に必要なので。  取得するには, 私は jQuery のビットを書いて、fiddler を使用して、実際の HTTP 会話をします.

ここでは、関連する jQuery です。 (コピーする場合は、コードを次コピー):

image

最初のキーが両方を含めるには <queryOptions> と <QueryOptions> ノード。  2 番目のキーは、 <フォルダー> ノードは、クライアントがアクセスする URL です。.

これを取得する他の方法がある可能性があります。, しかし、これも私のため jQuery を使用するときに働いた.

ここでは、SOAP エンベロープは、上記の:

<soapenv:封筒 xmlns:soapenv =’http://schemas.xmlsoap.org/soap/envelope/’>                
  <soapenv:体>
    <GetListItems xmlns =’
http://schemas.microsoft.com/sharepoint/soap/’>
      <姓>サブ フォルダーのカスタム一覧</姓>
      <viewFields>  
        <ViewFields>
          <FieldRef 名 =' タイトル’ />
          <FieldRef 名 ='EncodedAbsUrl’ />
        </ViewFields>
      </viewFields>
      <queryOptions>
        <QueryOptions>
          <フォルダー>
http://demoserver1/ブログ シナリオ、リスト、カスタム リスト サブ フォルダー年間 2006</フォルダー>
        </QueryOptions>
      </queryOptions>
   
</GetListItems>
  </soapenv:体>
</soapenv:封筒>

多くの例、このトピックの私はすべて私が必要だったと考えているにつながった <QueryOptions> フォルダー名を指定します。  私, 両方を内部ラップします必要があります。 <queryOptions> 同様、完全修飾 URL を指定するには <フォルダー> ノード.

ここでは、jQuery の AJAX のセットアップ:

$(ドキュメント).準備ができて(関数() {
       var soapEnv =
           "<soapenv:封筒 xmlns:soapenv =’http://schemas.xmlsoap.org/soap/envelope/’> \
               <soapenv:体> \
                    <GetListItems xmlns =’http://schemas.microsoft.com/sharepoint/soap/’> \
                       <姓>サブ フォルダーのカスタム一覧</姓> \
                       <viewFields> \
                           <ViewFields> \
                              <FieldRef 名 =' タイトル’ /> \
                              <FieldRef 名 ='EncodedAbsUrl’ /> \
                          </ViewFields> \
                       </viewFields> \
                       <queryOptions> \
                         <QueryOptions> \
                           <フォルダー>http://demoserver1/Blogging シナリオ、リスト、カスタム リスト サブ フォルダー年間 2006</フォルダー> \
                         </QueryOptions> \
                       </queryOptions> \
                   </GetListItems> \
               </soapenv:体> \
           </soapenv:封筒>";

</終了>

私のブログを購読します。.

私は Twitter の上に従ってください。 http://www.twitter.com/pagalvin

無限のネスト <div> タグと jQuery

これは、ようなのような型破りなトピックです。, 私はそれは本当にについてのブログの価値があるか分からない, しかし、決して私の前に停止しています。, だからここに行く スマイル

私はここで私はいくつかのデータの検索から引っ張ってプロジェクトに取り組んでいます。, パッケージ XML メッセージにし、XML は、最終的に XSLT で HTML に変換されます。  たくさんある jQuery の関与, 1 つのビットはいくつかのタブ機能を実装します。  上のタブをクリックすると (本当に, は <div>), jQuery の .hide を呼び出す() .show() さまざまな div に (ポストバックがないのでこの場合、最初のページのロードのすべてのコンテンツをダウンロードします。).

前の束, 動作が不安定にロジックを切り替えタブを開始し、それは私のタブのいずれかを表示されません。  私は最終的には、実際には、インターネット エクスプ ローラーを追跡 (少なくとも) 考え、 <div> これまで入れ子になったタグ, 意図したよりもはるかに深い。[開発者用] ツールバーを表示します。:

-<div id ="Tab1Content">
  -<div>
    -<div>
      -<div id ="Tab2Content">
        -<div>
           …………………………
                   </div>  <— 最後にそれを表示では、ここにすべての方法を閉鎖されました。!

だから, か、 $(「# Tab1Content」).非表示します。(), 私はまた Tab2 を隠すだろうし、私は私がまた Tab1 を示さなかったかどうか Tab2 を見ることが。  コピーし、visual studio と、すべての div の裏地をうまく示したにコードを貼り付け, 同じように彼らのことになっていた, このような:

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

私はしばらくの間の壁に対して私の頭を打つし、実際の HTML の多くの空のコードを生成していたことに気づいた <div> タグ, ような:

<体>

  <div id ="Tab1Content">

    <div id」row1」=/>
    <div id」[row2」=/>

  </div>

  <div id ="Tab2Content">

    <div id」row1」=/>
    <div id」[row2」=/>

  </div>

</体>

(上記の単純にしすぎ waaaaaaaaaaaay です。  空の div タグが完全に有効であります。. いくつかの私 <div> タグの内容でした。, しかし、多くはなかった。  私は実現に来た、私 <xsl:それぞれ> ディレクティブは、短い形式が発光された div タグと xsl:各 didn't ' のデータを見つけます。  私は、出力に、HTML コメントを強制, 示すように:

image

 

私はそれをした後, すべての div がきれいに並んで、私のタブの切り替え作業開始.

いつものように, これはピンチで誰かに役立ちます願っています.

</終了>

私のブログを購読します。.

私は Twitter の上に従ってください。 http://www.twitter.com/pagalvin

まだ多くの jQuery–画像例のサイズを変更します。

Web パーツはクライアントの古いベンダーから継承し、は、イメージのサイズの問題。  画像 60 する必要があります。×50 しかし、いくつかの奇妙な理由のため, 元のベンダーを 42 に強制×42, 彼らぺしゃんこになったので:

 

良いイメージ

悪いイメージ

ここでは、マークアップです。 (簡略化多少):

<テーブル クラス ' 拡張 outlook'=>
  <thead>
    <tr>
      <th  幅 = 100′>3 火曜日</th>
    </tr>
  </thead>

  <tbody>
    <tr クラス '予想' =>
      <td 幅 = 100′>
        <ul>
          <李クラス '高' =>高: 72&度;F</李>
          <李クラス '低' =>低: 44&度;F</李>
          <李クラス = '条件'>日当たりの良い
            <img src =’
http://deskwx.weatherbug.com/images/Forecast/icons/localized/60×50/en/trans/cond007.png’ 幅 42年 =’ 高さ = 42年’ alt =” />
          </李>
        </ul>
      </td>
    </tr>

  </tbody>

</テーブル>

注意してよ、 イメージ自体へのパス 適切なディメンションが表示されます。 (60×50) 元のベンダーは 42 の強制×42.  なぜ?  クレイジー.

とにかく, 私は速く、容易な解決策と私は jQuery になっています。  すべての適切なを検索するにはトリックをだった <img> タグ。  他の img タグに小屋の掃除したがらなかったのですが。 (多くある).  このビットの jQuery のトリックをでした。:

<スクリプトの種類」テキスト/javascript を =" src ="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></スクリプト>

<スクリプトの種類」テキスト/javascript」=>
     $(ドキュメント).準備ができて(関数 () {

         $(' li.condition > img').各(関数 (インデックス, 項目)
           
{
             $(項目).css(「幅」, 「60」); 
             $(項目).css(「高さ」, 「50」);
            });
     }); // ドキュメントの負荷
</スクリプト>

そのビット コードのコレクションを検索します。 <李> タグ クラス「条件」と <img> 子供たち。  それは、すべてのことを反復処理します。  見事に成功しました.

私はおそらくそれを合理化できます。, しかし、私はなかった、π を解決 unix 男の種類 宛先 18 sed や awk 桁精度、jQuery のいずれかの男と私はそのような スマイル.

</終了>

私のブログを購読します。.

私は Twitter の上に従ってください。 http://www.twitter.com/pagalvin

OK およびキャンセル ボタンを制御します。

私が書いた この記事 中に戻る, 私はそれを私のブログから、時にリンクしていないように見えるが, そうここに行く:

image

彼女はキャンセルをクリックすると、ユーザーは OK と別のページでクリックすると 1 つのページにリダイレクトする newform.aspx を強制する方法について説明します。.

</終了>

私のブログを購読します。.

私は Twitter の上に従ってください。 http://www.twitter.com/pagalvin

クイック ヒント: MOSS 発行ページを jQuery を追加

JQuery を使って MOSS publising ページを強化すると, 次のスピード バンプを打つ:

サーバー エラーは '/’ アプリケーション.


パーサー エラー

説明: この要求の処理に必要なリソースの解析中にエラーが発生しました. 以下の解析エラーの詳細を確認して、ソース ファイルを適切に変更してください。.

パーサー エラー メッセージ: コンテンツ コントロールをコンテンツ コントロールを含むコンテンツ ページで直接許可のみ.

ソース エラー:

 
Line 10: 
Line 11: 
Line 12: <script 
Line 13:     type="text/javascript" 
Line 14:     src="/jQuery/jquery-1.4.min.js"> 

ソース ファイル: /_catalogs/masterpage/KCC_FacultyMember.aspx    行: 12


バージョン情報: Microsoft。NET Framework のバージョン:2.0.50727.4927; ASP。ネット版:2.0.50727.4927

それは簡単に修正できます。 (私の同僚に h/t, ウダイ Ethirajulu).  JQuery コードが示すように"PlaceHolderAdditionalPageHead"内に住んでいることを確認してください。:

<asp:ContentPlaceholderID コンテンツ ="PlaceHolderAdditionalPageHead" runat ="server">

<スクリプト

    タイプ ="テキスト/javascript"

    src="/jQuery/jquery-1.4.min.js">

</スクリプト>

<スクリプトの種類」テキスト/javascript」=>

  $(ドキュメント).準備ができて(関数() {

   // 素晴れらしい jQuery のようなものはここに行く.

   });

</スクリプト>

</終了>

私のブログを購読します。.

私は Twitter の上に従ってください。 http://www.twitter.com/pagalvin