如何使用jquery获取数据列表控件的clientID,我尝试使用下面的代码但没有成功:

$(document).ready(function(){
$('#<%=txtRenewalDate.ClientID %>').datepicker();
    $('#<%=txtCallBackDate.ClientID %>').datepicker();

});
<asp:DataList ID="dlCustomers" runat="server" ClientIDMode="Predictable">
    <ItemTemplate>
      <table border="0">
                    <tr>
                        <td class="">
                            RenewalDate:
                        </td>
                        <td class="">
                            <asp:TextBox ID="txtRenewalDate" runat="server" Text='<%# Eval("RenewalDate") %>' ClientIDMode="Static"></asp:TextBox>
                        </td>
                    </tr>
                    <tr>
                        <td class="">
                            Callback
                        </td>
                        <td class="">
                            <asp:TextBox ID="txtCallBackDate" runat="server" Text='<%# Eval("Callback") %>' ClientIDMode="Static"></asp:TextBox>
                        </td>
                    </tr></table>
                     </ItemTemplate>
</asp:DataList>


注释脚本时标记


                        <td class="">

                            RenewalDate:

                        </td>

                        <td class="">

                            <input name="ctl00$MainContent$dlCustomers$ctl00$txtRenewalDate" type="text" value="27/01/2012 00:00:00" id="txtRenewalDate" />

                        </td>

                    </tr>

                    <tr>

                        <td class="">

                            Callback

                        </td>

                        <td class="">

                            <input name="ctl00$MainContent$dlCustomers$ctl00$txtCallBackDate" type="text" value="27/01/2012 00:00:00" id="txtCallBackDate" />

                        </td>

                    </tr>


运行时出现以下错误:
名称“ txtRenewalDate”在当前上下文中不存在
名称“ txtCallBackDate”在当前上下文中不存在

任何想法我弄错了。

谢谢

最佳答案

我认为问题可能在于,由于这些控件位于数据列表中,而您是从数据列表外部调用它们的,因此从技术上讲,它们不在表单的根目录中。您可能需要执行以下操作:

 $('#<%= dlCustomers.FindControl("txtRenewalDate").ClientID %>')


我可能是错的,但这是我最好的猜测。

10-04 22:44