您需要了解服务器端和客户端之间的区别。
服务器端是发生在服务器上的一切(例如 ASP、ASP.NET、PHP),用于创建发送到浏览器的 HTML。它还处理用户提交内容(回发)时浏览器返回的信息。
客户端是一旦接收到 HTML 或当用户在页面上执行某些操作(如单击元素)时在浏览器上发生的所有事情。
这段代码是在服务器上创建的,因此就浏览器而言,文本参数永远不会改变(为了可见性而分割线)......
Me.listbox.Attributes("onclick") = "javascript:board_click_button('"
& Me.listbox.SelectedItem.Text & "');"
浏览器将收到类似(为可见性而简化)...
<select onclick="javascript:board_click_button('hello world');" ...
相反,我认为你想要的是这个......
Me.listbox.Attributes("onclick") = "board_click_button(this.options[this.selectedIndex].text);"
这将允许 javascript 使用this
变量(这是导致事件的对象,在本例中为<select>
)来查找当前选定的项目文本。
(另外,请注意,您不需要javascript:
在类型事件的开头放置 - 浏览器已经知道它是 javascript。如果您在标记中onclick
使用 javascript,则只需将其放置。)href
<a>
更新
这是一个非常快速的测试,对我来说可以正常工作(显示在警报框中,来自已选择项目的文本)......
<asp:ListBox runat="server" onclick="alert(this.options[this.selectedIndex].text);">
<asp:ListItem Value="1">one</asp:ListItem>
<asp:ListItem Value="2">two</asp:ListItem>
<asp:ListItem Value="3">three</asp:ListItem>
</asp:ListBox>