将ID传递给单击事件

passing ID to click event

本文关键字:单击 事件 ID      更新时间:2023-09-26

我在asp.net中继器中有以下输入

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

然后在我的文档中。准备好了,我绑定了一个点击功能

   <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"/>

你知道如何把这两种装订方式结合起来吗?

我建议您使用data属性。

<!--
    <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>

关于jQuery中data()方法的更多信息:http://docs.jquery.com/Data。

您可以使用新的data-*属性

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

在事件处理程序中,您可以使用访问它

cur.data("id")

您可以将ID传递给Repeater的Item Template中的Save函数。

<itemTemplate>
    <input type='button' onclick='save(<%# Eval("Id")); %>' value='Save' />
</itemTemplate>

试试这个

<ItemTemplate>
<div class="detailsItem">
<input type="button" class="saveCommand" onclick='save(<%# Eval("Id") %>);' value="Save"/>
</div>
</ItemTemplate>