- - PR -
次画面への値の受け渡しの質問です。
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2003-07-14 14:58
こんにちわ。初めて投稿させていただきます。宜しくお願いいたします。
次画面への値の受け渡しの質問なのですが、 VBSCRIPTを使用して、 A画面からB画面へ複数の値を受け渡そうとしております。 A画面内でClassNameでA画面を指定しています。 そして、B画面へ受け渡したい値をReadOnly Propertyを使用して複数セットします。 ボタンを押すとB画面へ飛ぶようにしております。 <%@ PAGE LANGUAGE="VB" Debug="true" ClassName="A"%> Public ReadOnly Property WorkymdVal() as string Get Return Workymd.text end Get end Property Public ReadOnly Property FurikaeymdVal() as string Get Return Furikaeymd.text end Get end Property Sub btnsubmit_Click(sender As Object, e As EventArgs) Server.Transfer("B.aspx") end sub B画面内ではReferPageとしてA画面を指定しております。 そしてロード時にConText.Handlerで値を受け取っております。 <%@ Reference Page="A.ASPX" %> sub Page_Load() sp = Ctype(Context.Handler,c00_toworktimeentry) Enter_Ymd = sp.WorkymdVal Furikae_Ymd = sp.FurikaeymdVal end sub というやり方をしているのですが、もっと良い方法はあるのでしょうか? ご存知の方がいらっしゃいましたら、ご教授いただけたらと考えております。 長々と書いてしまい、申し訳ございません。 よろしくお願い致します。 OS Windows2000 .NET FrameWork 1.0 | ||||||||||||
|
投稿日時: 2003-07-15 09:32
ぷにぷにさん、こんにちわ。
Requestで取ってきてはいかがでしょうか? 受け取り側で、Request("ElementID")って感じで。 上記のReadOnlyプロパティを利用すると、 別画面(例えばC画面)からB画面に遷移させようとするとエラーになってしまったような気がします。 ※↑のエラーは回避策があるのかもしれませんが勉強不足なので(^o^; | ||||||||||||
|
投稿日時: 2003-07-15 10:56
はぐれコーギー様、ありがとうございます。
引用: -------------------------------------------------------------------------------- Requestで取ってきてはいかがでしょうか? 受け取り側で、Request("ElementID")って感じで。 上記のReadOnlyプロパティを利用すると、 別画面(例えばC画面)からB画面に遷移させようとするとエラーになってしまったような気がします。 ※↑のエラーは回避策があるのかもしれませんが勉強不足なので(^o^ -------------------------------------------------------------------------------- ReadOnlyプロパティを削って、(その他はそのままという意味です)試してみました。 B画面で response.write (request("Workymd")) と記述してみたのですが、値を表示してくれません。 何か記述が足りないのでしょうか? 度々申し訳ございませんが、ご教授いただけますでしょうか? | ||||||||||||
|
投稿日時: 2003-07-15 13:30
念のためこちらでも同じような状況を作り試してみました。 結果はきちんと取得できています。 試しにRequest.Form("ElementID")でやってみてください。 試したソースを記載しておきます。 ■A.aspx側 ※Form上にID:TextBox1というテキストボックスがあるとして。
■B.aspx側
| ||||||||||||
|
投稿日時: 2003-07-15 14:11
度々、申し訳ございません。
引用: -------------------------------------------------------------------------------- 念のためこちらでも同じような状況を作り試してみました。 結果はきちんと取得できています。 -------------------------------------------------------------------------------- 再度やってみたのですが、結果が表示されません。 ソースの抜粋ですが、記載させていただきます。 ☆A画面ソース <%@ PAGE LANGUAGE="VB" Debug="true" ClassName="c00_toworktimeentry"%> <%@ Import Namespace="System.Data" %> <%@ Import Namespace="System.Data.SqlClient" %> <script runat="server"> private Sub btnsubmit_Click(sender As Object, e As EventArgs) Server.Transfer("c01_insert.aspx") end sub </script> <table> <tr> <td>出社年月日</td> <td><asp:TEXTBOX id="Workymd" size="14" maxlength="10" runat="server" /></td> </tr> </table> <table align=center> <tr> <td><asp:BUTTON id="btnsubmit" OnClick="btnsubmit_Click" runat="server" Type="SUBMIT" text="実行" /></td> </tr> </table> ☆B画面ソース <%@ PAGE LANGUAGE="VB" Debug="true"%> <%@ Import Namespace="System.Data" %> <%@ Import Namespace="System.Data.SqlClient" %> <script runat="server"> private sub Page_Load() response.write (request("Workymd")) あるいは response.write (request.form("Workymd")) end sub </script> ひょっとしたら、単純なミスのせいなのでしょうか? 宜しくお願いいたします。 | ||||||||||||
|
投稿日時: 2003-07-15 14:24
すいません。
ソースの記載で漏れがありました。 B画面では <%@ Reference Page="c00_toworktimeentry.aspx" %> も記述しております。 すいません。宜しくお願いいたします。 | ||||||||||||
|
投稿日時: 2003-07-15 14:34
A画面の方でFormタグが抜けているようですが実際のソースにはありますか?
無ければ、Formタグをrunat="server"付きで宣言してあげてみてください。 | ||||||||||||
|
投稿日時: 2003-07-15 14:44
すいません。ソースの記載から漏れておりました。
実際には <form name="frmsnd" method="post" runat="server" action="C01.insert"> という形で記述しております。 |