1

asp.netリピーター内に次の入力があります

 <div class="detailsItem">
    <input type="button" class="saveCommand" value="Save"/>
 </div>

次に、document.ready 内でクリック関数をバインドします

   <script type="text/javascript">

    $(document).ready(function () {

        $('.saveCommand').live('click', function () {
            var cur = $(this);
            saveItem(cur.closest('div.detailsItem'));
        });

    });

リピーターをバインドするときに、click関数の呼び出しに ID を含めることができるようにしたいと考えています。次のようなもの:

<input type="button" onclikc="save(this,<%#((CustomViewItem)Container.DataItem).Id%>" value="Save"/>

バインディングの 2 つのスタイルを組み合わせる方法について何か考えはありますか?

4

4 に答える 4

3

I would suggest you to use a data attribute.

<!--
    <div class="detailsItem" data-id="<%#((CustomViewItem)Container.DataItem).Id%>">
-->
<div class="detailsItem" data-id="YourIdHere">
    <input type="button" class="saveCommand" value="Save"/>
</div>

<script type="text/javascript">
    $(document).ready(function () {
        $('.saveCommand').on('click', function () {
            var cur = $(this);
            var detailsItem = cur.closest('div.detailsItem');
            alert(detailsItem.data("id"));
            saveItem(detailsItem);
        });
    });
</script>

More information on the data() method in jQuery: http://docs.jquery.com/Data .

于 2012-07-08T20:38:51.433 に答える
2

新しいdata-*属性を使用できます

<input type="button" data-id="<%#((CustomViewItem)Container.DataItem).Id%>" value="Save"/>

イベントハンドラーでは、次のコマンドでアクセスできます。

cur.data("id")
于 2012-07-08T20:37:13.993 に答える
0

リピーターのアイテム テンプレートの保存機能に ID を渡すことができます。

<itemTemplate>
    <input type='button' onclick='save(<%# Eval("Id")); %>' value='Save' />
</itemTemplate>
于 2012-07-08T20:39:39.107 に答える
0

これを試して

<ItemTemplate>
<div class="detailsItem">
<input type="button" class="saveCommand" onclick='save(<%# Eval("Id") %>);' value="Save"/>
</div>
</ItemTemplate>
于 2012-07-08T20:51:09.153 に答える