我有一个在代码后面绑定的列表框,用户可以从列表中选择并提交。清除此列表的链接按钮中发生的错误是unable to set property 'selectedindex' of undefined or null reference
ASP.NET:
<asp:ListBox ID="lstBoxAgents" runat="server" SelectionMode="Multiple"></asp:ListBox>
<asp:LinkButton ID="lnkClearAgents" runat="server"
OnClientClick="document.getElementById('lstBoxAgents').selectedIndex = -1;return false;">
Clear Me</asp:LinkButton>
答案 0 :(得分:1)
ASP控件的客户端ID不一定与您提供的ID相同。 ASP.NET为您的控件添加前缀,以便它们不会发生冲突,从而生成客户端ID。您可以通过在浏览器中打开页面并检查F12开发工具中的元素来检查此ID是什么。
可以使用ClientIDMode属性更改ClientID模式。如果将其设置为静态,则客户端ID将始终是您指定的ID,并且您必须自己确保唯一性。
答案 1 :(得分:1)
您的列表框的属性为runat =&#34; server&#34;,因为其生成的ID与您编写的ID不同。因此,只需检查Chrome控制台中客户端浏览器生成的ID,然后指定该ID。
<asp:LinkButton ID="lnkClearAgents" runat="server"
OnClientClick="document.getElementById('youridatclientbrowser').selectedIndex = -1;return false;">
Clear Me</asp:LinkButton>
答案 2 :(得分:1)
您可以在javascript中访问您的asp.net列表框控件ID,如下所示。
document.getElementById('<%=lstBoxAgents.ClientID%>')