サーバー側とクライアント側の違いを理解する必要があります。
サーバー側は、ブラウザーに送信されるHTMLを作成するために使用されるサーバー(ASP、ASP.NET、PHPなど)で発生するすべてのものです。また、ユーザーがデータを送信したときにブラウザーから返される情報(ポストバック)も処理します。
クライアント側とは、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:
(また、タイプイベントの開始時に配置する必要がないことに注意してくださいonclick
。ブラウザはすでにjavascriptであることを認識しています。タグ内で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>