0

マスター ページを使用せずに aspx ページで次の Jquery を実行しています。スクリプト付きのマークアップを以下に示します。それはうまく動作します。

<body>
<form id="form1" runat="server">
<div>

    <asp:CheckBox ID="chkAll" runat="server" Text="Check All" /><br />

    <asp:CheckBoxList ID="cbList" runat="server">
    </asp:CheckBoxList>

</div>
</form>

ここにスクリプトがあります

<script src="Scripts/jquery-1.7.2.js" type="text/javascript"></script>

<script type="text/javascript">
    $(document).ready(function () {
        $('#chkAll').click(
         function () {
             $("INPUT[type='checkbox']").attr('checked', $('#chkAll').is(':checked'));
         });
    });    

 </script>

マスター ページを使用して作成したページのマークアップを次に示します。マスター ページには、HeadContent プレースホルダーのヘッダーにある jquery ファイルへの参照のみが含まれます。言うまでもなく、マスター ページのシナリオでは機能しません。質問はなぜ

 <asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" Runat="Server">
   The identical script from above is placed here

</asp:Content>

そして、これがプレースホルダー コンテンツ マークアップです。

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" Runat="Server">

<div>

    <asp:CheckBox ID="chkAll" runat="server" Text="Check All" /><br />

    <asp:CheckBoxList ID="cbList" runat="server">
    </asp:CheckBoxList>

</div>
</asp:Content>
4

4 に答える 4

0

jQueryスクリプトへの相対パスに問題があるようです。スクリプトが読み込まれているかどうかを確認するには、Webデバッガー(FireBug、IEツールバーなど)を使用する必要があります。Scriptsフォルダーがサイトのルートにある場合は、scriptsrcを「/Scripts/jquery-1.7.2.js」に設定します。

于 2012-05-15T20:10:14.743 に答える
0

これは、マスター ページを使用すると、ページに表示されるコントロール ID が異なるためです。コードが両方のケースで機能することを確認するには、以下のようなことを行う必要があります。

$("[id$='chkAll']").click() { function () {
    $("INPUT[type='checkbox']").attr("checked", $(this).attr("checked"));
});

お役に立てれば!!

于 2012-05-15T20:06:54.450 に答える
0

IDWeb フォーム コントロールに指定した値を使用することはできませんrunat="server"。ID は次のように変更されctl1_chkAll、スクリプトは失敗します。次のような方法でクライアント ID を参照する必要があります。

$("#<%= chkAll.ClientID %>")

... これが、人々が Web フォームから離れていく理由です。

于 2012-05-15T20:05:26.813 に答える
0

コントロールで使用ClientIDMode="Static"すると、割り当てた名前で参照できるようになります。

<asp:CheckBox ID="chkAll" runat="server" Text="Check All" ClientIDMode="Static" />
于 2012-05-15T20:13:40.177 に答える