如何使用jquery获取Datalist控件的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”
任何想法,我错了。
由于
答案 0 :(得分:0)
这是完整/实际的页面来源吗?或者你真的在头部有这个脚本?如果你在head部分有这个,我相信你需要在你的head标签中添加runat =“server”..在主表单标签之外运行内嵌代码存在一些问题。
答案 1 :(得分:0)
我认为问题可能是因为这些控件都在数据主义者中,并且您从数据主义者之外调用它们,从技术上讲它们不存在于表单的根目录中。您可能需要执行以下操作:
$('#<%= dlCustomers.FindControl("txtRenewalDate").ClientID %>')
我可能错了,但这是我最好的猜测。
答案 2 :(得分:0)
如果您使用asp.net 4,那么您可以将客户端ID模式设置为静态,这比在DOM asp.net 4.0 clientID modes中找到客户端ID更容易
答案 3 :(得分:0)
为了选择这个元素,你应该使用这样的东西:
var txtRen = $('#<%= dlCustomers.ClientID %>').Find('[id$=txtRenewalDate]');
答案 4 :(得分:0)
您可以使用表达式$(&#39;&lt;%=&#34;#&#34; + control.ClientID%&gt;&#39;)在jquery中选择控件。
希望这会有所帮助。