第 5 章 ノート メニューの列と返信の実装
第 4 章で完成したホームページは、実際には非常に不完全です。まず、ノート メニューの列にはリンクがなく、クリックできません。次に、ノートのタイトルをクリックしてもリンクできません。第三に、著者をクリックしても、著者の情報にリンクすることはできません。これらの機能はこの章で改善されます。
: テンプレート bkblog.dwt.aspx のメニュー列のハイパーリンクを変更し、ホームページを開いたときにすべての Web ページを更新して、学習ノートのコンテンツを表示します。時間の降順で、メニュー列をクリックすると、列に従って学習ノートの内容を時間の降順に表示することもできます。
5.1.1 テンプレートメニューの作成
(1) テンプレート bkblog.dwt.aspx を開き、ダイナミック テキスト (menuda.LM) を選択し、ハイパーリンクを作成し、ホームページ (index.aspx) にリンクし、[コード表示ビュー] を選択して移動します。図 5-1-1 の赤い縦線の場所にマウスを移動します。 (以下に特別な指示はありません。記号はすべて英語です)
図5-1-1 リンク属性にマウスを移動します。
(2) 「?menanw=」と入力し(menanwはパラメータ変数)、[バインディング]パネルに切り替え、データセット(メニューダ)の下のフィールドLMIDをドラッグして、等号を入力すると、結果が図 5-1-2 に示されます。
図 5-1-2 動的属性 (a.href) の挿入
(3) [サーバー動作] パネルに切り替えると、図 5 に示すように、サーバー動作が追加されたことがわかります: 動的属性 (a.href) -1-3 :
図 5-1-3 サーバー動作パネル
(4) [ホーム] メニューを選択して、index.aspx へのリンクを作成し、[お問い合わせ] を選択して、mailto:[email protected] へのリンクを作成します。
(5) bkblog.dwt.aspx テンプレートを保存すると、図 5-1-4 に示すダイアログ ボックスが表示されます。
図 5-1-4 テンプレートファイルの更新ダイアログボックス
(6) [更新] ボタンをクリックして、メモ メニューの列を完了し、ホームページの Index.aspx を更新します。
5.1.2 ホームページに列表示を実装する
(1) ホームページのindex.aspxを開き、[サーバー動作]パネルに切り替え、データセット(Ztre)をダブルクリックし、ポップアップデータセットダイアログボックスで図 5-1-5 に示すように、[詳細設定] ボタンをクリックします。 [SQL] テキスト領域で SQL コマンドを選択してコピーします。これを、新しく作成したメモ帳または Word テキストに貼り付けることをお勧めします。これは、後続の手順で非常に役立ちます (SQL に精通している場合は、この手順をスキップできます)。言語) 。
図5-1-5 データセット詳細ダイアログボックス
(2) 「シンプル」ボタンをクリックし、「フィルタ」ドロップダウンメニューでフィルタフィールドをLMIDとして選択し、パラメータ転送方法として「URLパラメータ」を選択し、入力パラメータ変数が「OK」ボタンを押すと、結果が図 5-1-6 に表示されます。
図 5-1-6 Ztre データセットをフィルターに変更する
(3) IE でホームページを閲覧しますが、図 5-1-7 に示すように閲覧結果が記録されません
図 5-1-7 ホームページの閲覧画面
(4) ホームページの IE 閲覧で、「ネットワーク プログラミング」リンクをクリックすると、前章の図 4-3-3 に示すように、すべてのネットワーク プログラミング学習ノートが表示されます。 。
「ちょっと待ってください。これは元の設計のアイデアと一致しません。表示できるのは列単位だけであり、すべての学習ノートではありません。ASP.NET ページ間のデータ転送、つまり Windows アプリケーションのフォーム間のデータ転送にも問題があります。」転送はグローバル変数(パブリック静的変数)の定義などにより実現できます。ただし、これらのメソッドを使用して ASP.NET の Web ページ間でデータを転送することはできません。たとえば、データ セット ナビゲーション バーをクリックすると、Ztre_currentPage のデータは転送されますが、menanw のデータは転送できません。つまり、データ セット ナビゲーション バーのいずれかのハイパーリンクをクリックすると、データは転送されません。 menan によって転送されるデータは常に null になりますが、これは不可能です。カラム表示を実現するだけでなく、カラムの下のページング表示も同時に実行します。ここではセッションを使用してパラメータを渡す解決策を示します。
(5) session("menanw")にパラメータ変数menanwを渡すため、コードビューに切り替え、図5-1-8の赤丸で示したコードを<html>タグの前に挿入します。
図 5-1-8 デフォルト関数をロードするために、index.aspx にページを挿入します。
(6) [サーバー動作] パネルでデータセット (Ztre) を選択します。図 5-1-9 に示すように、黒い部分がデータセット (Ztre) 定義コード。
図 5-1-9 データセット Ztre のコード
(7) コードを見つけます:
CommandText='<%# "SELECT * FROM ZTRE WHERE LMID = ? ORDER BY ZITIME ASC" %>'
上記のコードを次のように変更します:
CommandText=' <%# IIf(((request.QueryString("menanw")<>nothing) または Request.QueryString("Ztre_CurrentPage") <> Nothing),"SELECT * FROM ZTRE WHERE LMID = ? ORDER BY ZITIME DESC","SELECT * FROM ZTRE ORDER BY ZITIME DESC") %>'
(8) 見つかったコード:
<Parameter Name="@LMID" Value='<%# IIf((request.QueryString("menanw") <> Nothing)、リクエスト。 QueryString("menanw"), "") %>' Type="Integer" /></Parameters></MM:DataSet>
上記のコードを次のように変更します:
<Parameter Name="@LMID" Value='<% # IIf((session("menanw") <> Nothing), session("menanw"), "") %>' Type="Integer" /></Parameters></MM:DataSet>
(9) IE Browse を実行の結果を第 4 章の図 4-3-3 に示します。確立された設計アイデアを完成させます。
返信ページの実装設計アイデア: ノートのタイトルをクリックすると、ノートと対応するすべての返信を含むページにリンクできます。前のセクションから、これは、このノートのコード パラメーターをノート タイトルのハイパーリンクに渡すだけで実現できることがわかります。
5.2.1 基本的なページ設計
(1) テンプレート bkblog.dwt.aspx によって生成された新しい ASP.NET VB 動的ページ hf.aspx を作成し、本体編集可能領域にテーブル ztre を挿入し、関連する設計を実行した結果が表示されます。図 5-2-1 は以下を示しています。
図 5-2-1 テーブル ztre 設計図
(2) Access2003 を起動し、FH テーブル、YH テーブル接続クエリ HFRE を確立します。実際の接続ビューと表示フィールドは図 5-2-2 に示されています。
図 5-2-2 HFRE の関連する設計のクエリ
(3) セクション 4.2.2 データ セットの手順 (1) ~ (3) に従って、データ セット Ztre を追加し、フィールドを対応する位置にドラッグし、ダイナミック テキストを実行します。 (Ztre.ZYTEXT) フォーマット設定の結果を図 5-2-3 に示します。
図 5-2-3 データをテーブル ztre にバインドする
(4) フィルターするデータセット Ztre を変更します。フィルターフィールドは ZTID、パラメーター転送方法として「URL パラメーター」を選択し、入力パラメーター変数は ztanw です。
(5) データセット Hfre を追加し、フィルターフィールドは ZTID、パラメーター転送方法として「URL パラメーター」を選択、入力パラメーター変数は ztanw です。結果は図 5-2-4 に示されています。
図 5-2-4 データセット Hfre の設計
(6) データセット Hfre フィールドをテーブル ztre の対応する位置にドラッグし、ダイナミック テキスト (Htre.HFTEXT) の形式設定を「Encoding - HTML エンコード形式」に設定します。 "を実行し、テーブル ztre の最初のフィールドを変更します。行 5、6、および 7 は繰り返し領域として定義され、データはテーブル ztre にページングされます。結果を図 5-2-5 に示します。
図 5-2-5 データ セット Htre をテーブル ztre にバインドします
(7) ホーム ページindex.aspx を開き、ダイナミック テキスト (Ztre.ZTNAME) を選択し、ハイパーリンクを作成し、hf.aspx にリンクし、コードに切り替えます。データ セット Ztre の下のフィールド ZTID を等号にドラッグすると、結果は図 5-2-6 のようになります。
図 5-2-6 コードに動的ハイパーリンクを追加します
(8) hf.aspx と Index.asps を保存し、Access の対応する HF テーブルと YH テーブルにいくつかのレコードを入力し、IE ブラウザで Index.asps を参照し、 をクリックします。図 5-2-7 に示すように、返信付きの調査ノートのトピック:
図 5-2-7 応答ページの表示
(9) 次に、データ セット ナビゲーション内の任意のハイパーリンクをクリックすると、結果は図 5-2-8 に示されているようになります。
図 5-2-8 データ セットナビゲーション
をクリックした後のページ
全部消えた!これは、ASP.NET Web ページ間のデータ転送の問題です。セクション 5.1 のように変更する必要があります。
(10) コードビューに切り替え、図5-2-9の赤丸で示したコードを<html>タグの前に挿入します。
図 5-2-9 ページを hf.aspx に挿入してデフォルト関数をロードします
(11) データ セット Ztre 内のコードを見つけます:
<Parameter Name="@ZTID" Value='<%# IIf((request.QueryString) ("ztanw ") <> Nothing), request.QueryString("ztanw"), "") %>' Type="Integer" />
上記のコードの request.QueryString("ztanw") を session("ztanw") に置き換えます。 ")、結果コードは
<Parameter Name="@ZTID" Value='<%# IIf((session("ztanw")<> Nothing), session("ztanw"), "") %>' に変更されます。 Type="Integer" />
(12) データセット Hfre 内のコードを検索します:
<Parameter Name="@ZTID" Value='<%# IIf((request.QueryString("ztanw") <> Nothing), request .QueryString("ztanw" ), "") %>' Type="Integer" />
上記のコードの request.QueryString("ztanw") を session("ztanw") に置き換えると、結果のコードは
<
に変更されます。パラメータ名 = "@ZTID" 値 = '<%# IIf((session("ztanw")<> Nothing), session("ztanw"), "") %>' Type="Integer" />
(13) hf.aspx を保存します。