- Access
- ぬし
- 会議室デビュー日: 2002/04/08
- 投稿数: 829
|
投稿日時: 2003-04-05 07:55
ASP.NETでページ間で情報を遷移させるには、
・QueryString
・Session変数
・Server.Transfer()
などがあります。
Server.Transfer("NewPage.aspx", True)のように、
2番目の引数にTrueを指定することによりForm Stateを保存することができます。
この場合、遷移元のWebフォームに入力したデータが遷移先に継承されます。
この機能を使用するときは、遷移先のページの@ Pageディレクティブに
EnableViewStateMac="False"を追加する必要があります。
たとえば、Page1.aspxのTextBoxに入力した値をPage2.aspxのTextBoxに継承
したいときは、TextBoxのIDを同じ名称にするだけでOKです。
Page1.aspx
<asp:TextBox id="TextBox1" runat="server" />
Page2.aspx
<asp:TextBox id="TextBox1" runat="server" />
もちろん、Request.Form("TextBox1")のように記述して直接値を
取得することもできます。
サンプルコード
メソッド1:EnableViewStateMac="True" (なぜかデフォルトになっています)
コード: |
|
Page1a.aspx
<%@ Page Language="vb" ClassName="WebForm1" %>
<script runat="server">
Public _SomeValue As String
Sub Button1_Click(s As Object, e As EventArgs)
SomeValue = TextBox1.Text
Server.Transfer("Page1b.aspx")
End Sub
Property SomeValue() As String
Get
Return _SomeValue
End Get
Set(Value As String)
_SomeValue = Value
End Set
End Property
</script>
<html>
<body>
<form runat="server">
Enter Some Value :
<asp:TextBox id=TextBox1 runat="server" />
<br />
<asp:Button id="Button1" runat="server"
Text="Submit"
OnClick="Button1_Click" />
</form>
</body>
</html>
Page1b.aspx
<%@ Page Language="vb" %>
<%@ Reference Page="Page1a.aspx" %>
<script runat="server">
Sub Page_Load(s As Object, e As EventArgs)
Dim wf1 As WebForm1
wf1 = CType(Context.Handler, WebForm1)
TextBox1.Text = wf1.SomeValue()
End Sub
</script>
<html>
<body>
<form runat="server">
You Entered :
<asp:TextBox id="TextBox1" runat="server" />
</form>
</body>
</html>
|
メソッド2:EnableViewStateMac="False"
コード: |
|
Page2a.aspx
<%@ Page Language="vb" %>
<script runat="server">
Sub Button1_Click(s As Object, e As EventArgs)
Server.Transfer("Page2b.aspx", True)
End Sub
</script>
<html>
<body>
<form runat="server">
Enter Some Value :
<asp:TextBox id=TextBox1 runat="server" />
<br />
<asp:Button id="Button1" runat="server"
Text="Submit"
OnClick="Button1_Click" />
</form>
</body>
</html>
Page2b.aspx
<%@ Page Language="vb" EnableViewStateMac="False" %>
<script runat="server">
Sub Page_Load(s As Object, e As EventArgs)
Response.Write("You Entered :" & Request.Form("TextBox1"))
End Sub
</script>
<html>
<body>
<form runat="server">
You Entered :
<asp:TextBox id="TextBox1" runat="server" />
</form>
</body>
</html>
|
[ メッセージ編集済み 編集者: Mr.ADO.NET 編集日時 2003-04-05 20:27 ]
|