登録されたメンバーとWeb開発データベースの作成、
標準のHTMLフォーム(フォーム要素)を使用すると、フォーム要素を使用するために別のページまたはアプリケーションにデータ情報を渡して送信できます。 ASP.NET 1.xでは、Webページは配信メカニズムを使用してページデータをページ自体に送信します。 ASP.NET 2.0の場合、その機能は拡張されており、ページ全体で送信することができます。今週この新機能について説明しましょう。
従来の方法
比較を容易にするために、Webページからデータを送信する古い方法を確認するために少し費やしたいと思います。 HTMLのテーブル要素には、これらの提出されたデータを処理するためのリソース(そのため、コールされたリソースがWebページ、スクリプト、プログラムなどを指す)を指定するアクション属性があります。次のコードはサンプルです。
<html>
<head> <Title>サンプルHTMLフォーム</title> </head>
<body>
<form name = "frmsample" method = "post" action = "target_url">
<入力型= "テキスト" name = "fullname" id = "fullname" />
<入力型= "button" name = "submit" value = "submit" /> />
</form>
</body> </html>
テキストドメインに入力された値(名前はフルネーム)は、ユニット要素のアクション属性によって指定されたページまたはプログラムに送信されます。 ASP.NET開発者の場合、標準のHTMLフォームを使用していても、非常にまれです。
ASP.NETの開発者が、あるWebページから別のWebページにデータ情報を渡すタスクに直面している場合、選択の余地は非常に広いです。セッション変数、Cookie、クエリストリング変数、キャッシュキャッシュ)、さらにはServer.Transferが含まれますが、ASP.NET 2.0も別の選択肢を提供します。
ASP.NET 2.0は、提供する別の方法を提供します
ASP.NET 2.0を設計するとき、MicrosoftはWebページ間でデータを交差させるニーズを認識しました。この意識により、asp.ntのボタン(ボタン)制御にpostbackurl属性が追加されます。これにより、ユーザーが提出されたときにフォームと上記のデータが配信される場所(つまり、Postbackurlプロパティで指定されたURL値)を示すことができます。一般的に、クロスページ送信は、バックグラウンドでJavaScriptを使用するプロセスです。
<%@ページ言語= "vb"%><
<html> <head>
<title>クロスポストバックの例</title>
</head> <body>
<form id = "frmcrosssspostback1" method = "post" runat = "server">
<asp:label id = "lblname" runat = "server" text = "name:"> </asp:label>
<asp:textbox id = "txtname" runat = "server"> < /asp:textbox> <br />
<asp:label id = "lble-mailaddress" runat = "server" text = "電子メール:"> </asp:label>
<asp:textbox id = "txte-mailaddress" runat = "server"> < /asp:textbox> <br />
<asp:button id = "btnsubmit" runat = "server" text = "submit" postbackurl = "crosspostback2.aspx" />
</form> </body> </html>
ASP.NETページのASP.NETページには、2つのテキストドメイン(名前(名前)と電子メール(電子メール)、およびデータの送信に使用されるボタン(ボタン)があります。この送信ボタンのポストバック属性は別のWebページとして指定されているため、フォームが送信されると、データをそのページに送信できます。注:この例では、フォーム要素は、メソッド属性を設定して提出中に投稿[2]提出方法を作成することによりPOSTHOD属性によって設定されますが、これは必要ありません。設計に従ってメソッドを投稿します。
前のページを使用します
ASP.NETページがクロスページ配信の呼び出しでロードされると、その上のオブジェクトのiSpostback属性はトリガーされません。ただし、PreviousPage(前のページ)と呼ばれる属性があります。クロスページ配信を適用した人にアクセスして使用できます。
クロスページリクエストが発生するたびに、現在のページの前のページプロパティが保存され、配信されるページを参照します。ページの生成がクロスページ配信の刺激から来ていない場合、またはページが異なるプログラムグループにある場合、前のPAGEプロパティは初期化されません。
ページの読み込みが、前のページオブジェクトをチェックすることにより、クロスページ配信の結果であるかどうかを判断できます。値がnullの場合、それは通常の負荷であることを意味し、null値がWebページがクロスページ配信に由来することを示します。さらに、ページクラスには、isCrossSpagePostbackと呼ばれるメソッドも含まれています。これは、ページがクロスページ配信の結果であるかどうかを判断するために特別に使用されます。
決定されたら、前のPageオブジェクトのFindControlメソッドによって、呼び出しページのコントロールにアクセスできます。次のコードは、私たちの例の2番目のページです。
<%@ページ言語= "vb"%><
<html> <head>
<title>クロスポストバック例2 </title>
</head> <body>
<スクリプト言語= "vb" runat = "server">
sub page_load()
そうでない場合(page.previouspageは何もありません)、
そうでない場合(page.iscrosspagePostback)
Response.write( "name: + ctype(previouspage.findcontrol(" txtname ")、textbox .text +" <br>)
Response.write( "電子メール:" + ctype(previouspage.findcontrol( "txte-mailaddrss")、textbox).text + "<br>")
ifを終了します
ifを終了します
End Sub
</script> </body> </html>
このページは、クロスページ配信によって呼び出されるかどうかを決定します。その場合は、[findcontrolメソッドを介して呼び出し]ページから値にアクセスし、このメソッドによって得られたコントロールをテキストボックスコントロールに変換し、テキスト(テキスト)属性のコンテンツを表示します。
以前のPageオブジェクト全体を、クロスページ配信をトリガーするページタイプに変換できます。この方法を使用すると、ページのページとページのメソッドにアクセスできます。このテクノロジーの例を挙げる前に、いくつかのグローバルな属性を含めるために最初の例を書き直す必要があります。次のコードは、2つの属性の最初のリストです。
<%@ページ言語= "vb"%><
<html> <head>
<title>クロスポストバックの例</title>
<スクリプト言語= "vb" runat = "server">
パブリックReadonlyプロパティ名
得る
me.txtname.textを返します
Getを終了します
プロパティを終了します
Public Readonly Property E-MailAddress
得る
me.txte-mailaddress.textを返します
Getを終了します
プロパティを終了します
</script> </head> <body>
<form id = "frmcrosssspostback1" method = "post" runat = "server">
<asp:label id = "lblname" runat = "server" text = "name:"> </asp:label>
<asp:textbox id = "txtname" runat = "server"> < /asp:textbox> <br />
<asp:label id = "lble-mailaddress" runat = "server" text = "電子メール:"> </asp:label>
<asp:textbox id = "txte-mailaddress" runat = "server"> < /asp:textbox> <br />
<asp:button id = "btnsubmit" runat = "server" text = "submit" postbackurl = "crosspostback2.aspx" />
</form> </body> </html>
属性が現在構築されたので、簡単にアクセスできます。警戒するには、ページクラスの前のページオブジェクトを正しいタイプに変換して、その属性に正しくアクセスする必要があります。これは、適切なページクラスに変換することで実装できます。
<%@ページ言語= "vb"%><%@参照ページ= "〜/CrossPostback1.aspx"%>
<
<html> <head>
<title>クロスポストバック例3 </title>
</head> <body>
<スクリプト言語= "vb" runat = "server">
sub page_load()
crosspostback1_aspxとしてのdim cpppage
そうでない場合(page.previouspageは何もありません)、
そうでない場合(page.iscrosspagePostback)
if(page.previouspage.isvalid)then
cpppage = ctype(前page、crosspostback1_aspx)
Response.write( "name: + cppppage.name +" <br> ")
Response.write( "電子メール:" + cpppage.e-mailadddress)
ifを終了します
ifを終了します
ifを終了します
End Sub
</script> </body> </html>
これを説明すると、ヘッドヘッドのコールページへの参照を定義して、この参照タイプをコードで使用できるようにします。このリファレンスを介して、実際のVB.NETコードはCTYPE関数を使用して、前のPageオブジェクトを適切なタイプに変換します。その後、これらの属性はコードデモのように使用できます。
上記のリストの前のPageオブジェクトのiSValidメソッドの使用は、ここで思い出されます。前のページのiSValidプロパティは、動作する前にすべての法的検証とテストに合格したことを保証します。
要約します
個人のユーザー情報の維持など、Web間でデータパラメーターを送信するための多くのアプリケーションがあります。 QueryStringやCookieの使用など、先祖のWebソリューションを使用すると、提出が発生したときにあるページから別のページを指すことができます。
ASP.NET 1.1追加の方法を提供することに加えて、これらの方法も十分にサポートできますが、ASP.NET 2.0はクロスページ配信に依存しており、この点で大きな発展を遂げています。別のWebページからの1つのWeb処理データを簡単にします。次のASP.NET 2.0プログラムを開発する場合、この新しい概念の利点をうまく利用する必要があります。