javascript 无法设置 属性 selectindex 列表框

javascript unable to set property selectindex list box

我有一个在代码后面绑定的列表框,用户可以从列表中 select 并提交。从 selecting 中清除此列表的 link 按钮中发生的错误是 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>

ASP 控件的客户端 ID 不一定与您为其提供的 ID 相同。 ASP.NET 为您的控件添加前缀,这样它们就不会发生冲突,从而生成一个客户端 ID。您可以通过在浏览器中打开您的页面并在 F12 开发工具中检查该元素来检查此 ID 是什么。

可以使用 ClientIDMode 属性 更改 ClientID 模式。如果您将其设置为静态,客户端 ID 将始终是您分配的那个,您必须自己确保唯一性。

您的列表框具有属性runat = "server",因此生成的id 与您编写的不同。因此,只需在 Chrome 的控制台中检查客户端浏览器生成的 ID 并指定该 ID。

<asp:LinkButton ID="lnkClearAgents" runat="server" 
 OnClientClick="document.getElementById('youridatclientbrowser').selectedIndex = -1;return false;">
Clear Me</asp:LinkButton>

您可以在 javascript 中访问您的 asp.net 列表框控件 ID,如下所示。

document.getElementById('<%=lstBoxAgents.ClientID%>')