Javascript Can';t访问中继器中自动完成的文本框
我正在尝试使用一个小javascript脚本访问中继器中的文本框。当用户从列表中选择一个选项时,ajax自动完成会调用它 它无法工作,因为javascript无法访问文本框(ID=ContactID)。原因是因为它在中继器中。那么,如何修改脚本以访问中继器中的特定文本框呢Javascript Can';t访问中继器中自动完成的文本框,javascript,asp.net,ajax,Javascript,Asp.net,Ajax,我正在尝试使用一个小javascript脚本访问中继器中的文本框。当用户从列表中选择一个选项时,ajax自动完成会调用它 它无法工作,因为javascript无法访问文本框(ID=ContactID)。原因是因为它在中继器中。那么,如何修改脚本以访问中继器中的特定文本框呢 <script type="text/javascript" > function OnContactSelected(source, eventArgs) { $get('<%# Conta
<script type="text/javascript" >
function OnContactSelected(source, eventArgs) {
$get('<%# ContactID.ClientID %>').value = eventArgs.get_value();
}
</script>
函数OnContactSelected(源、事件参数){
$get(“”).value=eventArgs.get_value();
}
中继器代码:
<asp:repeater ID="itemsRepeater"
OnItemDataBound="itemsRepeater_ItemDataBound"
runat="Server">
<itemtemplate>
<tr>
<td>
<asp:RadioButtonList runat="server" DataSource="<%# ((Outlet)Container.DataItem).OutletInformations %>" DataValueField="DateOfDelivery" DataTextField="DateOfDelivery" />
</td>
<td>
<asp:TextBox ID="ContactID" runat="server"/>
</td>
</tr>
</itemtemplate>
</asp:repeater>
您的问题似乎是您实际上没有针对任何“特定”文本框。对于中继器的每一行,都会有一个这样的文本框,而且由于数据绑定的性质,这些文本框总是只在运行时可用 要解决这个问题,您需要做以下两件事之一。更难但更完整的答案是使用中继器的onItemDatabound事件并从该事件的eventArgs中提取子控件。如果您想修改codebehind中的子控件,这将是您唯一的选择 但是,由于您是从javascript执行此操作的,并且(表面上)希望在每个文本框上运行此自动完成函数,因此只需为表行指定一个类,并将呈现的输入标记作为其目标: .aspx:
<itemtemplate>
<tr>
<td>
<asp:RadioButtonList runat="server" DataSource="<%# ((Outlet)Container.DataItem).OutletInformations %>" DataValueField="DateOfDelivery" DataTextField="DateOfDelivery" />
</td>
<td class="autocomplete">
<asp:TextBox ID="ContactID" runat="server"/>
</td>
</tr>
</itemtemplate>
JS:
函数OnContactSelected(源、事件参数){
变量字段=document.querySelectorAll(“.autocomplete input”);
对于(变量i=0;i
您的问题似乎是您实际上没有针对任何“特定”文本框。对于中继器的每一行,都会有一个这样的文本框,而且由于数据绑定的性质,这些文本框总是只在运行时可用
要解决这个问题,您需要做以下两件事之一。更难但更完整的答案是使用中继器的onItemDatabound事件并从该事件的eventArgs中提取子控件。如果您想修改codebehind中的子控件,这将是您唯一的选择
但是,由于您是从javascript执行此操作的,并且(表面上)希望在每个文本框上运行此自动完成函数,因此只需为表行指定一个类,并将呈现的输入标记作为其目标:
.aspx:
<itemtemplate>
<tr>
<td>
<asp:RadioButtonList runat="server" DataSource="<%# ((Outlet)Container.DataItem).OutletInformations %>" DataValueField="DateOfDelivery" DataTextField="DateOfDelivery" />
</td>
<td class="autocomplete">
<asp:TextBox ID="ContactID" runat="server"/>
</td>
</tr>
</itemtemplate>
JS:
函数OnContactSelected(源、事件参数){
变量字段=document.querySelectorAll(“.autocomplete input”);
对于(变量i=0;i
您能分享一些asp.net页面标记吗您能分享一些asp.net页面标记吗