- - PR -
DropDownListで指定したアイテムのみ他のページに飛ばす
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2006-03-05 19:03
お世話になります。
実はasp.net(vb)で「DropDownListで指定したItemの場合のみ、Button1をClickすると他のページに飛ぶというコードを書いております。(下記のコード) <%@ Page language="vb" %> <HTML> <script runat="server"> Sub Page_Load() If Not IsPostBack Then Dim arrDotNet As New ArrayList() With arrDotNet .Add("--- 言語選択 ---") .Add("Visual Basic .NET") .Add("Visual C++ .NET") .Add("Visual C# .NET") .Add("Visual J# .NET") End With dropVsNet.DataSource = arrDotNet dropVsNet.DataBind() End If If dropVsNet.SelectedItem.Value = "Visual Basic .NET" Then Button1.Attributes("onclick") = "window.open('WebForm2.aspx','_blank');return false;" If dropVsNet.SelectedItem.Value = "Visual C++ .NET" Then exit sub If dropVsNet.SelectedItem.Value = "Visual C# .NET" Then exit sub If dropVsNet.SelectedItem.Value = "Visual J# .NET" Then exit sub End Sub </script> <body> <form id="Form1" runat="server"> <P><asp:dropdownlist id="dropVsNet" runat="server" AutoPostBack="True" Width="156px"></asp:dropdownlist></P> <P> <asp:Button id="Button1" runat="server" Text="Button"></asp:Button></P> </form> </body> </HTML> しかし、DropDownListで指定していない項目を選択してもページが現れてしまい、困っております。また、新しいページが現れた時点で元のページを消したいのですが、上記のコードに"window.close('WebForm2.aspx','_blank');return false;"と入れてOKかと思いましたが、vb6のように簡単にはいかないようです。誰か救いの手をさしのべていただけたらありがたいです。 |
|
投稿日時: 2006-03-05 21:20
DropDown は AutoPostBack にしなくても、Button1 のクリックイベントで DropDown.SelectedValue を検査すればいいのでは?
Page.StartupScript に書き出せばいいですよね? または、クライアントスクリプトで判断させてもいいのでは? 消したい画面というのは、どんな画面でしょう?元々起動している画面なら、消せませんよ。 (いや、できるけど、やっかいだし、やるべきではない) 〆 written by Jitta@わんくま同盟 on 2006/03/05 |
1