- PR -

DropDownListで指定したアイテムのみ他のページに飛ばす

1
投稿者投稿内容
新システム
会議室デビュー日: 2006/03/05
投稿数: 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のように簡単にはいかないようです。誰か救いの手をさしのべていただけたらありがたいです。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2006-03-05 21:20
 DropDown は AutoPostBack にしなくても、Button1 のクリックイベントで DropDown.SelectedValue を検査すればいいのでは?
 Page.StartupScript に書き出せばいいですよね?
 または、クライアントスクリプトで判断させてもいいのでは?



 消したい画面というのは、どんな画面でしょう?元々起動している画面なら、消せませんよ。
(いや、できるけど、やっかいだし、やるべきではない)

〆 written by Jitta@わんくま同盟 on 2006/03/05
1

スキルアップ/キャリアアップ(JOB@IT)