- PR -

Page_Loadの前後に使用できるイベントは?

1
投稿者投稿内容
Beecha
会議室デビュー日: 2002/11/15
投稿数: 16
投稿日時: 2003-01-09 16:01
こんにちは。VB.NETを使用してシステム開発を行っています。

メニュー画面からある画面に移動した後に、
Page_LoadにてDataGridを動的に生成するのですが、
その画面は複数の処理(メニュー画面で表示される
各処理)で使用するため、各処理に
応じてDataGridの内容が変化していきます。

DataGridには普通の列とハイパーリンク列が混在しています。
特定の列にて、ある処理ではハイパーリンクを使用し、
別の処理ではハイパーリンクを使用しない(文字表示のみ)
ようにしたいのです。

そのために、Page_Loadにて、特定の列にはIF文にて振り分け
Response.Write文でHTML文を書き込んでみたら、そこはうまく
できたのですが、その後にページの題名を入れるテキストに
データを入れようとすると、以下のようなエラーが発生しました。

****************************************************************************
オブジェクト参照がオブジェクト インスタンスに設定されていません。
説明 : 現在の Web 要求を実行中に、ハンドルされていない例外が発生しました。
エラーに関する詳細および例外の発生場所については、スタック トレースを
参照してください。

例外の詳細: System.NullReferenceException:
オブジェクト参照がオブジェクト インスタンスに設定されていません。
****************************************************************************

多分DataGridとともに、Formタグでくくられた部分全てをResponse.Write文で
書き込んだことが原因で、まだテキストが生成されてないから発生したエラーだと
思います。

そこで、まずテキスト部分のみを生成した後に、DataGridを生成するための、
Page_Loadの前後に使用できるイベントがあるかどうか質問した次第です。

少々長くなりましたが、よろしくお願いします。








[ メッセージ編集済み 編集者: びーちゃ 編集日時 2003-01-09 16:05 ]
cats
大ベテラン
会議室デビュー日: 2002/11/29
投稿数: 221
お住まい・勤務地: 東京
投稿日時: 2003-01-09 20:16
ご質問の回答ではありませんが。

条件により表示内容を変えたい場合、以下のようにもできます。
・両方の出力を別の列に常に出力する。
・条件により適当な列のVisibleをfalseにする。
Beecha
会議室デビュー日: 2002/11/15
投稿数: 16
投稿日時: 2003-01-10 14:03
早速のお返事、ありがとうございました。

このお答えを読んで「あっ!」と思い、以下のように修正し、解決しました。
(手探り状態だったので解決するまでに時間がかかってしまいました)

・HTML文はPage_Load時に書かないようにして通常通りHTML文の書くところに書いた
・その代わり、DataGridに普通の列とハイパーリンク列の2つを用意する
・Page_Load時に条件分岐をしてどちらかを不可視にするようにした


私が情報不足のため、かなりこねくりまわして考えていたようです。
それに気づかせて下さって大変感謝しております。
また1つ方法を覚えることができ、勉強になりました!

今度はきちんと勉強してから質問をしようと思います。

ありがとうございました!
1

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