- PR -

ユーザーコントロール内のテキストボックスの値を遷移先で使用したい

投稿者投稿内容
KM
会議室デビュー日: 2007/02/14
投稿数: 15
投稿日時: 2007-02-20 15:51
ページ内にユーザーコントロールを貼り付けてあるのですが、
そのユーザーコントロール内にある、テキストボックスの値を、
遷移先でも使用したいのですが、

Request.form みたいな形では取得できないようなのですが、
取り方が間違っているのでしょうか?
べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2007-02-20 18:35
引用:
KMさんの書き込み (2007-02-20 15:51) より:
ページ内にユーザーコントロールを貼り付けてあるのですが、
そのユーザーコントロール内にある、テキストボックスの値を、
遷移先でも使用したいのですが、

Request.form みたいな形では取得できないようなのですが、
取り方が間違っているのでしょうか?

いったいどんなユーザーコントロールですか?(ここはあまり重要じゃなさそうですが)
「みたいな形」って具体的に試したコードは?
「遷移先」とありますが「遷移」具体的方法は?(ここが一番重要っぽい)

そのユーザーコントロールがHTMLになったとき<input type="text" name="なまえ"
みたいになっていれば(POST先であれば)Request.form["なまえ"]でとれます

.NET的な話をすれば、リダイレクトとかしてる場合ポストバック先では取れるけど
リダイレクト先ではRequest.formじゃあ取れないでしょうね。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2007-02-20 22:12
 う〜ん、、、読みにくい(^-^;

 先に「まったく知らない人に、状況がわかるように説明しなければならない」と書きました。その続き。

 あなたをまったく知らない我々は、あなたと利害を共にしているわけではありません。あなたに利を与えたからといって、我々に必ずしも利があるわけではありません。そこを、何とか、聞き出さなければならないわけです。

 平易な言葉でいうと、「答えたくなるような質問の仕方」をしなければならないわけです。ここを間違えると、こういう小言が返ってくるわけです(--;スミマセン
 ウェブで聞くのって、本当はとても難しいんです。だから私は、「まず、あなたのまわりの人に聞いてみましょう。そして、質問内容が整理されているか、確認しましょう」と薦めます。


んで、本題。

 「遷移先」とありますが、どの様に遷移しているのでしょうか。サーバ側で Transfer しているなら、私は使っていないので詳しいところはわかりませんが、取れます。
 サーバから Redirect したり、アンカー要素でクライアントからのリクエストで遷移しているなら、リクエストが異なっているために取ることは出来ません。

 おそらく、後者として。
 この場合、たいていの場合、セッションにしまいます。
_________________
KM
会議室デビュー日: 2007/02/14
投稿数: 15
投稿日時: 2007-02-21 09:52
いつもいつも説明不足ですみません。。

まず、環境ですが、
Webサイト(ASP.NET)を作成して、
WEBフォームを2つ作ります。
1、入力フォーム(以下Page1.aspx)
2、確認フォーム(以下Page2.aspx)

次に、
Webユーザーコントロールを1つつくります。
・UC1.ascx
(このユーザーコントロール内には、テキストボックスがあります。
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>

次に、
Page1内に、UC1を配置し、ボタンを配置します。

ボタン押下時のイベントで、Server.Transfer("Page2.aspx")を実行し、

Page2に遷移してきたら、Page2内でUC1のTextBox1の値をとりたいのです。

どうでしょうか?
(まだわかりづらいでしょうか・・・)
どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2007-02-21 10:50
Transferをつかっているなら、Transferを実行するまえに
 HttpContext.Current.Items.Add("test", this.TextBox1.Text);
とでもやっておけば、遷移先のページでは
 this.Label1.Text = HttpContext.Current.Items["test"].ToString();
こんな形でとりだせますね。
KM
会議室デビュー日: 2007/02/14
投稿数: 15
投稿日時: 2007-02-21 16:23
どっとねっとふぁん様

確かに取れました。
アドバイスありがとうございました。(^^)
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2007-02-21 21:14
 私としては、フォームやリクエストのデータをそのまま用いるのではなく、いったんデータ クラスにしまうことを薦めます。
 これにより、見せるところと、データ、およびデータ操作ロジック(ビジネス ロジック)を分離できます。分離することで、ビジネス ロジックの変更が見せるところに影響せず、また、他の「見せ方」に移植しやすくなります。
_________________
KM
会議室デビュー日: 2007/02/14
投稿数: 15
投稿日時: 2007-02-22 10:52
Jitta様。お世話になります。

データクラスとはまた初めて聞きました(0o0)

「新しい項目の追加〜」から何かファイルを追加するのでしょうか?
(それとも、Sessionみたいなもの?)

どんなコーディングになるのか想像もつかないのですが。。。
参考になるもの(サイトとか、コードとか)があるとわかりやすいですm(_ _)m

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