

現在、アプリケーションを作成しているのですが構想と近いサンプルが@ITに
ありましたので利用させて頂きました。
参考にさせて頂いたのは[ASP.NET]1つのWebフォーム内で一覧/詳細画面を切り替えるには?です。
http://www.atmarkit.co.jp/fdotnet/dotnettips/354 …
現在、サンプルのままでテーブル等を変更しただけの状態になっており、表示もうまくされております。
作りたいのはこのサンプルの前に検索フォームがあり、検索フォームで押されたボタン1が押されてこのサンプルに
きた場合は検索キーはA・ボタン2が押された場合の検索キーはBとサンプルのPage_Loadの際にに表示されるテーブルの検索キーが異なってくる形のものです。
ボタンの種類によって検索キーを変える処理分岐の方法が分からないのとこのサンプルでPage_Loadの際に
テーブルをあと4つ表示させたいのですがどの様にすれば宜しいのでしょうか?
(データソース名も違うテーブルです。)
色々調べてみたのですがどうしても分からなかったので教えて頂けるとありがたいと思っています。
最近、勉強し始めたばかりで分かりづらい部分があるかと思いますが宜しくお願い致します。
No.22
- 回答日時:
Clickイベントは汎用イベントハンドらなので引数のeはSystem.EventArgsになっています
Commandイベントはボタン専用のイベントで引数eはCommandEventArgsになっています
CommandEventArgsにはこのイベントのコントロールに設定されたCommandAgument、CommandNameなどを参照できます
これの利点は 複数のボタンで1つのハンドラを共有できると言ったことです
今回のように ボタンAでは『名前』で検索、ボタンBでは『所在地』で検索など行う処理自体は同じな共有化が出来ます
HiddenFieldA.Value = e.CommandName
と言った具合にしておけば ボタンAで呼ばれてもボタンBで呼ばれても同じコードの実行ですみます
この回答への補足
ありがとうございます☆
VBファイルの
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Protected Sub ButtonA_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles ButtonA.Click
HiddenFieldA.Value = ButtonA.CommandName
End Sub
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
を削除して
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Sub ButtonA_command(ByVal sender As Object, ByVal e As CommandEventArgs)
HiddenFieldA.Value = e.CommandName
End Sub
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
へと変更しました。
aspxファイルは
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
<asp:Button ID="ButtonA" runat="server" OnCommand="ButtonA_command" Text="検索実行" PostBackUrl="~/Serch_View.aspx" CommandName="契約番号" Width="78px" />
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
へと変更しました。
やっぱりあのエラーが出てしまいます。。。
NULLって事は値が来ていないのでしょうか??
No.21
- 回答日時:
テキストボックスへの入力を渡すのではないでしょうか?
myKeyOneは return TextBox1.Text になりませんか
またボタンAのClickイベントより Commandイベントホノウが良いかもしれません
Commandイベントなら 引数のeで CommmandNameなどを参照できます
この回答への補足
>テキストボックスへの入力を渡すのではないでしょうか?
そうですね!
間違えてました。。。
Public ReadOnly Property myKeyOne() As String
Get
Return ValueToPassOne.Text
End Get
End Property
こうですね☆
redfox63さまの環境でできていらっしゃったのであればこちらのソースが違っていると思い確認して頂いた次第でございます。
ありがとうございます。
Commandイベントですか?
Clickイベントとは違うものですよね?
No.20
- 回答日時:
おかしいですね 当方VWDは使用していないので同じ現象が確認できません
VS2005でAP.NETサイトを新規構築すると
App_Dataフォルダ
Defualt.aspx
Web.Config
が作成され
サイトのビルドなどを行うと Binフォルダに関連DLLが構築されます
すみません 私一人ではフォローし切れません m(__)m
MSDNフォーラムのVWD EE辺りに投稿してみてはいかがでしょう
参考URL:http://forums.microsoft.com/MSDN-JA/default.aspx …
この回答への補足
ありがとうございます☆
>VS2005でAP.NETサイトを新規構築すると
App_Dataフォルダ
Defualt.aspx
Web.Config
が作成され
合っているので安心致しました☆
テキストボックスの値を持ってきていない気もするので検索側のソース見て頂いて宜しいでしょうか?
お願い致します!
合っていればまた別の場所への投稿も考えてみます。。。
@@@@@@@@@@@@@@@@@@@ left.aspx(ラベル・テキストボックス・ボタン) @@@@@@@@@@@@@@@@
<tr>
<td align="left" style="height: 58px;">
<asp:Label ID="Label2" runat="server" Text="契約番号" Width="150px" style="text-align:center"></asp:Label></td>
<td align="left" style="height: 58px">
<asp:TextBox ID="ValueToPassOne" runat="server" Width="170px"></asp:TextBox>
<asp:HiddenField ID="HiddenFieldA" runat="server" />
</td>
<td align="left" style="width: 25px; height: 58px">
<asp:Button ID="ButtonA" runat="server" Text="検索実行" PostBackUrl="~/Serch_View.aspx" CommandName="契約番号" Width="78px" />
</td>
<td align="left" style="width: 35px; height: 58px">
<asp:Button ID="Button1" runat="server" Text="クリア" /></td>
</tr>
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@ left.vb @@@@@@@@@@@@@@@@@@
Partial Class left
Inherits System.Web.UI.Page
_____________________________________________
Protected Sub ButtonA_Click(ByVal sender As Object,ByVal e As System.EventArgs)Handles ButtonA.Click
HiddenFieldA.Value = ButtonA.CommandName
End Sub
___________________________________________
Public ReadOnly Property myKeyOne() As String
Get
Return ButtonA.Text
End Get
End Property
___________________________________________
Public ReadOnly Property myProcOne() As String
Get
Return HiddenFieldA.Value.ToString
End Get
End Property
End Class
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
No.19
- 回答日時:
VWDのビルドメニューに『サイトの発行』と言うメニューがあるはずです
これをクリックしてサーバーへアップしましょう
ターゲットの欄に http://サーバー名/data/webappl/Test/
と言った具合にすれば良いでしょう
たぶん binフォルダーとかの中身がアップデートされていないのではないかと思います
DLLをBinフォルダに入れて これを参照しながら動作するはずなので
PreviousPageを取得するのに失敗しているのではと思います
まず確実に動くように ローカルのIISで開発したほうが良いように思いますよ
この回答への補足
おはようございます。
お返事遅れまして申し訳ありません。
ご回答感謝致します☆
WEBサーバーアップは完成後にしてとりあえずはローカル環境での完成を目指します。
WEBサーバーのフォルダは削除してローカルに持ってきたのですがやはり
NullReferenceExceptionはユーザーコードによってハンドルされませんでした。とのエラーがでました。。。
そもそものサイトの作り方が駄目なのでしょうか?
新しいWEBサイト→ASP.NET Webサービスといった具合で作成しているのですが・・・。
新しいWEBサイト→ASP.NETのWEBサイトで作成するとweb.configがなくエラーが出てしまうので(^ ^;)
ご教示頂けますでしょうか?
No.18
- 回答日時:
ん~ どうも配置手順に問題があるのかなぁ
直接 VWDのプロジェクトを Webサーバに構築したのでしょうか
そうであるなら VWDで『サイトのビルド』または『サイトのリビルド』を実行してDLLの更新をしてみたほうが良いかも
もしかして 直接 Search_View.aspxをIEのアドレスバーに入力して表示していませんか
そうなると PureviousPageはNothingつまり何も無い状態なのでエラー(NullRefelenceException)になりますよ
同じフォルダにあって アプリケーションルートが Testまでなら
VirtualPathは 『~/left.aspx』でいいはずですね
PostBackで表示させるのが前提になっています
IEのアドレスバーで『Web』が無くなるのはWebサーバ側の公開方法によるものかもしれません
仮想ディレクトリで切ってあるのかも
たとえば
D:\Web\Dataを サーバー/dataで公開しているとか
この回答への補足
redfox63さま
ありがとうございます。
あまり記憶にはないのですが・・・
VWDで「新しいWEBサイト」でフォルダを作成しそこに作ったか
Cドライブなどに作ったファイルをそのままWEBサーバーに配置したかどちらかだった気がします。。。
サイトのビルドですか?
正常に作られていないのでしょうか。。。
IEのアドレスバーに入力するのはleft.sapxで検索にて値を入力してボタンでSearch_View.aspxに移行していますので直接は入力していないです。
会社の公開方法は分らないのですが仰る通り仮想ディレクトリで切ってあるのだと思われます。
本当にすみません。。。
よろしくお願い致します。
No.17
- 回答日時:
> \\WEBサーバー\web\Data\webappl\Test\
このWebアプリのルートが何処になりますか?
1) \\WEBサーバー\web\Data\webappl\がルートなのか
2) \\WEBサーバー\web\Data\webappl\Test\までがルートなのか
1の場合なら ~/left.aspxとすると
WEBサーバ/web/data/webappl/left.aspx
Test/left.aspxに配置してあるなら ~/Test/left.aspxとします
2の場合なら ~/left.aspxとすると
WEBサーバ/web/data/webappl/Test/left.aspx
となります
この回答への補足
ありがとうございます☆
ファイルのルートは\\WEBサーバー\web\Data\webappl\Test\までとなっております。
仰る通りその場合なら
WEBサーバ/web/data/webappl/Test/left.aspxとなるので
IE表示のURLは
http://WEBサーバ/web/data/webappl/Test/left.aspx
なのですが会社のWEBは
http://WEBサーバ/data/webappl/Test/left.aspxで表示がされます。
すみません。
宜しくお願い致します。
No.16
- 回答日時:
ん~ … VWDで実行して NullRefelenceExcptionが発生するなら
やはり VirtualPathで設定したページのURLが違っているのだと思います
PreviousPageはPageオブジェクトのプロパティとして.NET Frameworkに組み込まれています
myType()は独自に組み込んだプロパティなので Pageクラスには存在しません
したがって VWD(ASP.NET)は『そんなの知らないぞ』エラーが発生します
検索条件を入力するページのURLはどうなっていますか
これが分からないと アドバイスの使用がありません
サーバー名/Webアプリケーション名/Test/Web/Left.aspx
これが条件入力のページなのでしょうか …
きちんと設定できていれば IEから単独実行しても動作します
ローカル IISに配置して開発を行ったほうが効率的だと思いますよ
デバッグが終了してからプロジェクトを発行してやれば本番サーバへの移行もさほど難しくありません
この回答への補足
redfox63さま
ありがとうございます。
助かります。
NullRefelenceExcptionが発生するならうまくいった訳ではないのですね・・・
現在検索条件を入力するページ(left.aspx)のURLは仮としますが
<asp:Button ID="ButtonA" runat="server" Text="検索実行" PostBackUrl="~/Serch_View.aspx" CommandName="番号" Width="78px" />
表示側(serch_View.aspx)ですがVBに
<%@ PreviousPageType VirtualPath="~/left.aspx" %>
と書かれています。
Left.aspxとserch_View.aspxが配置してある場所は共に同じで
\\WEBサーバー\web\Data\webappl\Test\
となっております。
ですのでIEでのleft.aspx実行時は
http://WEBサーバー/Data/webappl/Test/left.aspx
と入力して表示されています。
宜しくお願い致します。
No.15
- 回答日時:
ソリューションエクスプローラで表示されている階層構造がVirtual Pathと合致していますか
検索条件を入力するページは何処においてあるのでしょう
たとえば
このWebアプリのルートが http://localhost/TestWeb01 だとします
条件入力のページが Test/Data/SearchInput.aspxでしょうか
http://localhost/TestWeb01/Test/Data/SearchInput …
がフルパスです
~アプリケーションルート演算子を使うなら
~が localhost/TestWeb01 と置き換わるので
~/Test/Data/SearchInput.aspx
と表現できるわけです
この回答への補足
redfox63さん
ありがとうございます。
VWDの環境内での実行と言う事ですね。。。
すみません。今までWEBサーバー上にファイルを置いてVWDの環境内での実行ではなくIEから実行していました。
本当はIEから本番の様に実行してもエラーはでないのでしょうか??
またVWDにて実行した所
dim sType As String= PreviousPage.MyType()の所が黄色になり
NullReferenceExceptionはユーザーコードによってハンドルされませんでした。とのエラーがでました。
検索しても分からなかったので何度もすみませんがどうかご教示下さい。
No.14
- 回答日時:
VWDなら大丈夫だと思うのですが …
<%@ PreviousPageType VirtualPath="~/Web/Test/Left.aspx" %>
の VirtualPathの記述があっていないのではないかと思います
VWDってインテリセンスが利きましたっけ?
<%@ PreviousPageType VirtualPath=
と入力した際に そのフォルダーにあるファイル名と『URLの選択』といったドロップダウンリストが表示されますか?
ここで Left.aspxが表示されているのでしょうか
上記のPreviousPageTypeディレクティブを正確に書き終えてから
ビルド > サイトのビルドを実行します
インテリセンスが利くのであれば スクリプト中に
PreviousPage.
と入力すると プロパティやメソッドの候補が現れます
この中に myKeyOneやmyProcOneがあるはずなんですが …
この回答への補足
ありがとうございます!
<%@ PreviousPageType VirtualPath="~/Web/Test/Left.aspx" %>が問題の様です。。。
インテリセンスは利きますので<%@ PreviousPageType VirtualPath=
と入力した際にファイル名のドロップダウンリストが表示されました。
そこでLeft.aspxが表示されたのでそれを選択しました。
すると並線は消えましたが実行すると「/test/serch.aspxは存在しません」と表示されたので少し変えたのだと思います。
<%@ PreviousPageType VirtualPath=のURLを少しでも変更するとまた並線が出るので原因はこれだと思います。
ご教示下さいませ。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) AccessVBAで降順にするテーブル作成クエリを使用して作成したテーブルを削除し同一のテーブル作成 1 2023/01/06 11:17
- Access(アクセス) Access 登録ボタンからサブフォームの更新 1 2022/07/22 10:23
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- JavaScript ラジオボタンによるフォームの開閉を行いたい 3 2022/03/31 21:30
- Access(アクセス) Accessでセレクタをダブルクリックで別フォームで詳細表示 3 2022/12/20 10:36
- Access(アクセス) Accessにインポートした複数のテーブルを表示させる方法が分かりません。 1 2023/01/30 20:22
- Visual Basic(VBA) 検索のユーザーフォームの表示について 1 2023/03/27 23:31
- Access(アクセス) Access2016でフォーム内にExcelの複数シートを 表示させるイメージで複数テーブルの デー 1 2022/11/25 15:30
- Excel(エクセル) 【Excel】指定のセル内容を基に別シートのセルを検索して選択する【VBA】 1 2022/06/16 16:16
- Access(アクセス) Accessテーブルの結合で別々のテーブルのフィールドを組み合わせて値を出す方法について 2 2022/07/20 19:43
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
スイッチが二台あり、別々のア...
-
エクセルに張り付けた写真のフ...
-
VB.NET Excelを読み込んでDataT...
-
マクロで同じフォルダにある画...
-
Windowsで複数のファイルを同じ...
-
【VB.NET】App.configにファイ...
-
【VB.NET】Excelの最終行までの...
-
高校1年生情報の問題について。
-
VBAでPDFを作成する際、同じ名...
-
連想配列を配列に格納したいで...
-
C#からvbsを実行したい
-
onedrive にexcelファイルをア...
-
キヤノン アソビカメラ iNSPiC ...
-
【VB.NET】for each文からのINS...
-
asp.netにてgridviewの列を動的...
-
ASP.NetでWebアプリ開発の経験...
-
バッチで当日日付で作成される...
-
エラーコード:0×80070570を削...
-
SPO2測定
-
エクセルのマクロについて教え...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルに張り付けた写真のフ...
-
VBAでPDFを作成する際、同じ名...
-
VB.NET Excelを読み込んでDataT...
-
【VB.NET】App.configにファイ...
-
vba 空のデータをSplitする時の...
-
onedrive にexcelファイルをア...
-
phpのファイルがブラウザで開か...
-
Windowsで複数のファイルを同じ...
-
スイッチが二台あり、別々のア...
-
【VB.NET】Excelの最終行までの...
-
Windows10にデュアルブートでXP...
-
VB.NETでMSComm が追加できず?
-
ffftpでファイル取得が0バイト...
-
aspxをhtmlに変換する方法について
-
Accessのトグルボタンでサブフ...
-
お世話になります。 Windows Up...
-
高校1年生情報の問題について。
-
VBAでPDF作成をしたあと、指定...
-
asp.netにてgridviewの列を動的...
-
エクセルVBAで印刷する書式をク...
おすすめ情報