2008/10/23(Thu) 19:40:57 編集(投稿者)
色々とご回答いただきありがとうございます。
> ・「戻る」ボタンが 上で書いたような機能ではない場合
>
> → 説明された状況だけではよくわからないので、「戻る」ボタンでどういうことをしているのか、一覧表示ではセッション情報に関係なく、単に一覧を取得して表示以上のことをしているのかどうか、説明がほしいかなあ。
説明不足でしたすいません。
1.修正画面遷移時一覧データをセッションに格納
2.「戻る」ボタンはjavascriptで制御はしていないです。
3.「戻る」ボタンを押下した時のイベント処理は
4.redirectPageで、前画面(一覧)に遷移するようにしているだけです。
↑「戻る」ボタンは仕様的に、画面IDを渡して、システム共通メソッドで行うようにしているので、「戻る」ボタン処理の中身を変えることができません。
また、共通メソッドを呼び出す前に、セッションの中身を更新するような処理を入れようとしたら、却下されました。
そして一覧表示画面のPage_Loadで、セッションを取得して、セッション内容がnullではなかったら、セッション情報のテーブルデータを画面にセットするといった、動きです。
=======・・ソース的には・・=========================================
●「戻る」ボタン押下
〜〜画面側のクラス〜〜〜〜〜〜〜〜〜
protected void btn_return_Click(object sender, EventArgs e)
{
//共通画面イベントクラスのnew生成
MainOyaEventClass ev = new JibunClass;
//戻るイベントの呼び出し
ev.Act_return();
//画面遷移
Response.Redirect(ev.redirectPage);
}
〜〜イベント側〜〜〜〜〜〜〜〜〜〜〜
//共通のクラスを継承してオーバーライドする
public class JibunClass : MainOyaEventClass
{
protected override string Act_return()
{
return "画面ID.aspx";
}
}
//親クラス
public abstract class MainOyaEventClass : BaseEvent
{
public void Act_return()
{
// 一覧表示画面へ
redirectPage = strMenuPageScreenID();
}
// 一覧表示画面に遷移する際の画面ID
protected abstract string strMenuPageScreenID();
}
//さらに親
public abstract class BaseEvent : System.Web.UI.Page
{
public String redirectPage
{
get
{
return _redirectPage;
}
set
{
_redirectPage = value;
}
}
}
●Page_LoadのGridView設定部
//セッション内容取得
プロセスビーン pb = (プロセスビーン)Session[XXX_ID];
//Page_Loadでポストバック判断後の画面表示設定
if (Session[XXX_ID] != null)
{
//セッションの中身を取得
Bean1 pb = (Bean1)Session[修正画面に遷移する前に設定したセッション];
GridView1.DataSource = pb.dsTableData; //データ表示ボタンで取得したDBのテーブルデータをDataSetしたもの。
GridView1.PageIndex = pb.intPageIndex;
GridView1.DataBind();
}
====================================================================
です。
余計わかりにくくなってしまったかもしれませんが・・・
要は、GridView1.DataSource = pb.dsTableData;の処理の前に、このdsTableDataを更新できればいいと思うのですが、全くそのタイミングがわかりません。
・・・ということです。
長文失礼しました。