- PR -

次画面への値の受け渡しの質問です。

投稿者投稿内容
ぷにぷに
常連さん
会議室デビュー日: 2003/07/14
投稿数: 24
投稿日時: 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/06/12
投稿数: 32
投稿日時: 2003-07-15 09:32
ぷにぷにさん、こんにちわ。

引用:

A画面内でClassNameでA画面を指定しています。
そして、B画面へ受け渡したい値をReadOnly Propertyを使用して複数セットします。



Requestで取ってきてはいかがでしょうか?
受け取り側で、Request("ElementID")って感じで。
上記のReadOnlyプロパティを利用すると、
別画面(例えばC画面)からB画面に遷移させようとするとエラーになってしまったような気がします。
※↑のエラーは回避策があるのかもしれませんが勉強不足なので(^o^;
ぷにぷに
常連さん
会議室デビュー日: 2003/07/14
投稿数: 24
投稿日時: 2003-07-15 10:56
はぐれコーギー様、ありがとうございます。

引用:
--------------------------------------------------------------------------------
Requestで取ってきてはいかがでしょうか?
受け取り側で、Request("ElementID")って感じで。
上記のReadOnlyプロパティを利用すると、
別画面(例えばC画面)からB画面に遷移させようとするとエラーになってしまったような気がします。
※↑のエラーは回避策があるのかもしれませんが勉強不足なので(^o^
--------------------------------------------------------------------------------

ReadOnlyプロパティを削って、(その他はそのままという意味です)試してみました。
B画面で response.write (request("Workymd"))
と記述してみたのですが、値を表示してくれません。
何か記述が足りないのでしょうか?

度々申し訳ございませんが、ご教授いただけますでしょうか?
はぐれコ〜ギ〜
常連さん
会議室デビュー日: 2003/06/12
投稿数: 32
投稿日時: 2003-07-15 13:30
引用:

B画面で response.write (request("Workymd"))
と記述してみたのですが、値を表示してくれません。


念のためこちらでも同じような状況を作り試してみました。
結果はきちんと取得できています。
試しにRequest.Form("ElementID")でやってみてください。

試したソースを記載しておきます。
■A.aspx側
※Form上にID:TextBox1というテキストボックスがあるとして。
コード:
Private Sub Button1_Click(・・・) Handles Button1.Click
 Server.Transfer("B.aspx")
End Sub


■B.aspx側
コード:
Private Sub Page_Load(・・・)
 Response.Write(Request("TextBox1"))
End Sub


ぷにぷに
常連さん
会議室デビュー日: 2003/07/14
投稿数: 24
投稿日時: 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/14
投稿数: 24
投稿日時: 2003-07-15 14:24
すいません。
ソースの記載で漏れがありました。

B画面では
<%@ Reference Page="c00_toworktimeentry.aspx" %>
も記述しております。

すいません。宜しくお願いいたします。
はぐれコ〜ギ〜
常連さん
会議室デビュー日: 2003/06/12
投稿数: 32
投稿日時: 2003-07-15 14:34
A画面の方でFormタグが抜けているようですが実際のソースにはありますか?
無ければ、Formタグをrunat="server"付きで宣言してあげてみてください。
ぷにぷに
常連さん
会議室デビュー日: 2003/07/14
投稿数: 24
投稿日時: 2003-07-15 14:44
すいません。ソースの記載から漏れておりました。

実際には
<form name="frmsnd" method="post" runat="server" action="C01.insert">
という形で記述しております。

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