如何将中继器项的 ID 获取到 jQuery 中

how to get the id of repeater item into a jquery

本文关键字:获取 jQuery ID 中继器      更新时间:2023-09-26

如何使用jQuery获取嵌套转发器中文本框的id

这是我当前的代码:

<script type="text/javascript">
    var e = jQuery.noConflict();
    e(document).ready(function () {
        e("#<%= datepicker.ClientID %>, #datepicker").datepicker({
            changeMonth: true,
            changeYear: true
        });
    });
</script>
<asp:Repeater runat="server" ID="rpfollowup">
    <ItemTemplate>
        <asp:Repeater runat="server" ID="rpactivity" OnItemDataBound="rpactivity_ItemDataBound" >
            <ItemTemplate>
                <tr>
                    <td><asp:TextBox ID="Activities" runat="server" CssClass="span10"   Text='<%#Eval("Activity")%>'></asp:TextBox></td>
                    <td><asp:TextBox ID="datepicker" runat="server" CssClass="span10" ClientIDMode="Static" Text='<%#Eval("Start_Date")%>'></asp:TextBox></td>
            </ItemTemplate>
        </asp:Repeater>
    </ItemTemplate>
</asp:Repeater>

我减少了代码以避免混淆。

<%= 日期选取器。客户端 ID %> 给出红色下划线,因为它无法检测到转发器中的 ID。请给出解决方案。提前致谢

如果这是 ASP.NET repeater控件,则所有控件都将重复自身,文本框也是如此,因此您将Ids附加 1,2,,依此类推。因此,在文本框中使用类并应用如下函数:-

e(".datepicker").datepicker({
       changeMonth: true,
       changeYear: true
});

更新:-
将其用于中继器,因为每个项目将有多个文本框。

$('.datepicker').each(function () {
      $(this).datepicker({
       changeMonth: true,
       changeYear: true});
});

我在您的标记中添加了类,如下所示:-

<td><asp:TextBox ID="datepicker" runat="server" CssClass="span10 datepicker" 
  ClientIDMode ClientIDMode="Static" Text='<%#Eval("Start_Date")%>'></asp:TextBox></td>

另外,请注意,由于这是中继器,控件将重复,因此您需要使用$(this)引用当前上下文中的当前元素