2

ASP.Netで使用する場合のいくつかの良いjQueryリソースといくつかの落とし穴は何ですか?

4

3 に答える 3

5

ASP.Net の自動生成された ID は、jQuery のセレクター構文を使用して作成するのがやや困難です。

この問題を回避する 2 つの簡単な方法:

  • ID の代わりに CSS クラスを使用してオブジェクトを検索する
  • 次の方法で、uniqueid ガベージを取り除くことができます。$('[id$=myid]')
于 2008-10-27T22:26:40.467 に答える
3

注意すべきことの 1 つは、Ajax に WebMethods を使用する場合、セキュリティ上の理由から、応答値が「d」という名前のオブジェクトにラップされて返されることです。その値をアンラップする必要がありますが、jquery ajax に依存するコンポーネント (jqGrid プラグインなど) を使用していない限り、通常は問題ありません。これを回避するために、ajax を呼び出すグリッド内のコードを変更し、アンラップするコードを少し挿入しました。将来のバージョンで受け入れられるかどうかを確認するために、いくつかのコードを jquery クルーに送信する予定です。

前述したように、次は ID です。時間と気力があれば、実際にすべての HTML コントロールをサブクラス化して、NamingContainer への参加をオプションにしました。次のようにします。

protected override void RenderAttributes(HtmlTextWriter writer) {
    HtmlControlImpl.RenderAttributes(this, writer);
}

次に、ヘルパー オブジェクト (各オブジェクトに同じコードを記述しないようにするため) は次のようになります。

public static void RenderAttributes(IFormControl cntrl, HtmlTextWriter writer) {
    if (cntrl.ID != null) {
        cntrl.Attributes.Remove("id");
        cntrl.Attributes.Remove("name");
        writer.WriteAttribute("id", cntrl.RenderedId);
        writer.WriteAttribute("name", cntrl.RenderedName);
    }
    cntrl.Attributes.Render(writer);
    HtmlContainerControl containerCntrl = cntrl as HtmlContainerControl;
    if (containerCntrl == null)
        writer.Write(" /");
}

public static string GetRenderedId(IFormControl cntrl) {
    return cntrl.UseNamingContainer ? cntrl.ClientID : cntrl.ID;
}

public static string GetRenderedName(IFormControl cntrl) {
    return cntrl.UseNamingContainer ? cntrl.UniqueID : cntrl.ID;
}
于 2008-10-27T22:57:27.330 に答える
1

RickStrahlのブログから始めるのが良いでしょう。彼にはかなりの数のjQuery投稿があります。

于 2008-10-27T22:37:45.263 に答える