Asp.net .NET/html,元素不存在选择dropdown.ClientID时出错
单击按钮时,我想获取下拉列表的值,但由于某种原因,当我进入代码时,它失败,错误为“Exdd”,在当前上下文中不存在。ExTypeDD作为下拉列表出现在我的listview中,我只是想从中获取值。服务器端正在生成此代码,而不是我的浏览器Asp.net .NET/html,元素不存在选择dropdown.ClientID时出错,asp.net,html,Asp.net,Html,单击按钮时,我想获取下拉列表的值,但由于某种原因,当我进入代码时,它失败,错误为“Exdd”,在当前上下文中不存在。ExTypeDD作为下拉列表出现在我的listview中,我只是想从中获取值。服务器端正在生成此代码,而不是我的浏览器 $('.Updt') .click(function() { var parent = $(this).parent().prev(); var TypeNode = parent.children("#<
$('.Updt')
.click(function() {
var parent = $(this).parent().prev();
var TypeNode = parent.children("#<%=Exdd.ClientID %>").first();
<asp:ListView runat="server" id="ListView1" >
<LayoutTemplate>
<table id="tablesorter" style="border:solid 1px black;width:55%;">
<thead>
<tr>
<th>
<a href="#">Address</a>
</th>
</tr>
</thead>
<tbody>
<tr id="itemPlaceholder" runat="server" />
</tbody>
<tfoot>
</tfoot>
</table>
</LayoutTemplate>
<ItemTemplate>
<tr>
<td>
<select id="Exdd"
class="Nbr1" style="width: 90px" >
<option value=""><%# Eval("Type")%></option>
<option value="0">Home</option></select>
</td>
<td>
<input type="button" id="btn_update" class="Updt" value="Update" />
</td>
</tr>
</ItemTemplate>
</asp:ListView>
$('.Updt')
。单击(函数(){
var parent=$(this.parent().prev();
var TypeNode=parent.children(“#”)first();
家
您在一个列表视图中。您有asExTypeDD
和您有行一样。
因此,您无法在项目模板之外成功引用ExTypeDD
(有多个)
您可以尝试(将其包装在$(文档)中后)。准备好了吗
这是因为您正试图将服务器端的HTML元素作为服务器端控件进行访问。您只需向其添加runat=“server”
,即可将select
元素添加到服务器端控件中,如下所示:
<select id="ExTypeDD" runat="server" class="Nbr1" style="width:90px">
注意:上面的代码未经测试,可能无法编译,您需要进行必要的更正,但它应该能为您提供解决问题的方法。希望能有所帮助。产生错误的原因是什么-您的服务器端代码,或浏览器?服务器端。在逐步执行程序时确定。我正在重新标记您的问题。这与客户端代码无关。服务器端,您是如何尝试访问控件的?我是通过按钮单击来访问它的。很遗憾,我必须使用HTML类型的按钮,而不是asp按钮,因为它们对最终用户更易管理。在这种情况下,您无法直接访问服务器端的按钮或选择元素您可以使用服务器sie控件,因此您应该按照@jbl的回答使用客户端解决方案
<select id="ExTypeDD" runat="server" class="Nbr1" style="width:90px">
<asp:ListView runat="server" id="ListView1" onItemCreated="ListView1ItemCreated">
<input type="button" id="btn_update" class="Updt" value="Update" />
<asp:button id="btn_update" text="Update" runat="server" />
protected void ListView1ItemCreated(object sender, ListViewItemEventArgs e){
var myselect = (HtmlSelect)e.Item.FindControl("ExTypeDD");
var mybutton = (Button)e.Item.FindControl("btn_update");
mybutton.OnSubmit += (o,e) => {
// do something with myselect selected value
var selectedvalue = myselect.Value;
};
}