
ASP.netにて、ドロップダウンリストの選択に応じて、
処理を分岐させるプログラムを書いています。
現在、エラーになっているのですが、
下記のコードです。
-----------------------------------
<%@ Page Title="ホーム ページ" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"
CodeFile="Default.aspx.cs" Inherits="_Default" %>
<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
</asp:Content>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
<p><strong>【検索条件】</strong></p>
<div style="border:#d2d2d2 solid 1px;">
<p style="margin-left: 30px;">
<asp:DropDownList ID="ddlPref" runat="server">
</asp:DropDownList>
<asp:DropDownList ID="ddlNumOfPeople" runat="server">
</asp:DropDownList>
</p>
<p style="margin-left: 30px;">
<asp:DropDownList ID="ddlLayout" runat="server">
</asp:DropDownList>
<asp:DropDownList ID="ddlPrice" runat="server">
</asp:DropDownList>
</p></div>
<p>
</p>
<p>
<asp:Button ID="btnSearch" runat="server" Text="検索" Width="90px"
OnClientClick="javascript:DDLEnabled()" />
</p>
<script language="javascript" type="text/javascript">
function DDLEnabled() {
var srtMsg = '';
var Pref = document.getElementById("MainContent_ddlPref");
var PrefValue = Pref.options[Pref.selectedIndex].value;
var NumOfPeople = document.getElementById("MainContent_ddlNumOfPeople");
var NOPValue = NumOfPeople.options[NumOfPeople.selectedIndex].value;
var Layout = document.getElementById("MainContent_ddlLayout");
var LayoutValue = Layout.options[Layout.selectedIndex].value;
var Price = document.getElementById("MainContent_ddlPrice");
var PriceValue = Price.options[Price.selectedIndex].value;
if (PrefValue == "0") { srtMsg = "都道府県を選択してください。\n"; }
if (NOPValue == "0") { srtMsg = srtMsg + "人数を選択してください。\n"; }
if (LayoutValue == "0") { srtMsg = srtMsg + "レイアウトを選択してください。\n"; }
if (PriceValue == "0") { srtMsg = srtMsg + "料金を選択してください。\n"; }
if (srtMsg != '') { alert(srtMsg) }
if (PrefValue !== "0" && NOPValue !== "0" && LayoutValue !== "0" && PriceValue !== "0")
{
//ここで、検索の実行がされるようにしたい。。。
}
}
</script>
<p>
</p>
</asp:Content>
----------------------------------
上記コードにて、ボタン(btnSearch)が押下された時、
ドロップダウンリストが、
(1):全て選択されているとき ⇒ 次の画面へ
(2):未選択のものがあるとき ⇒ javascriptのポップ・アップ表示 をしたいと考えています。
#未選択、選択の判断はvalueの値がデフォルト値 "0"なので、0を未選択、0以外を選択済み
というように判断しています。
現在、ポップ・アップの表示は問題なくできているのですが、
全て選択されている時の処理(ボタンの押下、実行)ができていません。
どなたかご存知の方がいたらおしえてください。
宜しくお願い致します。
No.2ベストアンサー
- 回答日時:
横から失礼します。
コード例を拝見していると、クライアントサイドの検証が先ずあって、それを通った結果、ポストバックを敢行したい、というような雰囲気になっています。
ASP.NET最大の売りというのは、ポストバックとビューステートであり、これを使って簡単にサーバサイドで検証(バリデーション)が行え、また、クライアント検証も(ある程度は)自動生成できる、ということだと思います。
最近はAjax処理などが流行で、以前ほどの「ポストバック」->「サーバサイド検証」(「ついでにクライアント検証もそこそこ」)という流れでもないのかもしれませんが、ひょっとしてそういうことを意識してない、phpみたいな検証方法をお考えですか?
ならば、すぐ改めるべきだと思います。
こんなベタな検証ルーチンはASP.NET(特にWebフォーム)では必要ありません。
ValidationControlを使って、サーバ・クライアントとも自動実行しましょう。
ご丁寧にありがとうございます。javascriptからボタンの実行をさせることでかいけつしましたが、仰られているようにクライアントサイドの検証を試みはASP.netにそぐわないようですね。。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルに張り付けた写真のフ...
-
vba 空のデータをSplitする時の...
-
VBAでPDFを作成する際、同じ名...
-
phpのファイルがブラウザで開か...
-
【VB.NET】Excelの最終行までの...
-
VB.NET Excelを読み込んでDataT...
-
aspxをhtmlに変換する方法について
-
vba マージエリアの行数を非表...
-
SJISで、全角文字Aの文字コード...
-
高校1年生情報の問題について。
-
onedrive にexcelファイルをア...
-
キヤノン アソビカメラ iNSPiC ...
-
バッチで当日日付で作成される...
-
SPO2測定
-
エクセルのマクロについて教え...
-
インドe-Visa 承認書のApplicat...
-
SPIの非言語の割合と比が難しく...
-
SPIの対策は参考書でやるべきか?
-
LEDで電光掲示板に「A B C D E...
-
One Driveへのアクセス
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Response.Redirectで引数2つの...
-
隠しフィールドをVBScriptでの...
-
ページの更新内容が反映されない。
-
GridView表示の高速化
-
ASPへのデータの受け渡しについて
-
AutoPostBackにしているが、う...
-
データの受け渡し
-
GridViewからテンプレートフィ...
-
パラメータの値を受け取ってSQL...
-
ページを一度更新しないとSessi...
-
SqlDataSource SelectCommand ...
-
データ受け渡し時のSessionの使...
-
Panelを重ねる方法
-
Tableを動的に増やしたい。
-
クリッカブルマップを利用したA...
-
<ASP.NET>DataGridでOnSelected...
-
[ASP]ASPで「PCと携帯」及...
-
テキストボックスのデータの取...
-
時々処理が呼ばれない
-
ASPでテキストファイルにデータ...
おすすめ情報