javascript无法设置属性selectindex列表框

时间:2015-04-28 06:25:25

标签: javascript asp.net listbox selectedindex

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

3 个答案:

答案 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%>')