-1

jqueryコードがあり、リピーターのすべてのアイテムに対してこのコードを実行する必要があります

私のリピーターにはボタンがあり、リピーターのボタンをクリックするとラベルパラメーターがjquery関数に送信されて実行されます。私のJqueryコードは以下のとおりです。エラーが発生します。imgBtnCopyはリピーターの内部にあるため、imgBtnCopyという名前のボタンはないと表示されます。では、リピーターのitemcommandでこのコードを実行するにはどうすればよいですか?

<script type="text/javascript">
     $(document).ready(function () {
         $('#' + '<%= imgBtnCopy.ClientID %>').zclip({
             path: 'ZeroClipboard.swf',
             copy: function () {
                 return $('#' + '<%= lblFile.ClientID %>').val();
             },
             afterCopy: function () {

             }
         });

     });

</script>
4

1 に答える 1

1

ItemCommandリピーター オブジェクトのサーバー側イベントです。JQuery はクライアント側のコードであるため、ここで少し不一致があります。

また、レンダリングされた HTML のソースを表示すると、エラー メッセージが正しいことがわかります。imgBtnCopyの ID を持つオブジェクトはありません。ID の一部としてimgBtnCopyを持つオブジェクトがあります。ASP.NET フレームワークは、.NET 内の各コントロールに一意の ID を割り当てます。そうしないと、同じ ID を持つ複数のコントロールができてしまいます。良いことではありません。<ItemTemplate>

そうは言っても、上記の情報を考慮に入れるようにアプローチを変更する必要があります。

ID の一部としてimgBtnCopyを含むすべてのコントロールを選択するには、次のような jquery セレクターを使用します。

[id*=imgBtnCopy]

このようにして、文字列imgBtnCopyを含む ID を持つすべての要素を選択します。*= は、contains の JQuery 演算子です。次に、JQuery をこれらの各ボタンのクリック イベントに接続します。

于 2011-12-30T17:56:52.450 に答える