- PR -

EnableViewState="false"設定での値の引継ぎに関して

投稿者投稿内容
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-01-30 10:25
引用:

ターキッシュさんの書き込み (2004-01-29 19:32) より:

public class Text_Box_Add : System.Web.UI.MobileControls.TextBox{


 これって、「今」作ったのですよね?でも「すでに」と書いていますよね?Pageコントロールという標準コントロールを継承したコントロールを作っていませんか?
かなり意地悪な問題でしたね。ごめんなさい。
ターキッシュ
大ベテラン
会議室デビュー日: 2003/01/15
投稿数: 126
投稿日時: 2004-01-30 11:47
Jitta様ご返答ありがとうございます。

引用:

Jittaさんの書き込み (2004-01-30 10:25) より:
 これって、「今」作ったのですよね?でも「すでに」と書いていますよね?Pageコントロールという標準コントロールを継承したコントロールを作っていませんか?
かなり意地悪な問題でしたね。ごめんなさい。



正直な所、自分はoverrideの仕組みがいまいち解っていません。
是非ご教授願いたいところなのですが、この場合、「Pageコントロール
という標準コントロールを継承したコントロール」とはデフォルトで
作られるページ名を冠したクラスのことと思いますが、その中に普通の
関数のように入れるだけでよろしいでしょうか?

ただ、どうやって使うのかがいまいち解りません。
素人のような質問で申し訳ありませんが、是非勉強したいところです
ので、ご教授よろしくお願いします。

Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-01-30 14:36
引用:

ターキッシュさんの書き込み (2004-01-30 11:47) より:

正直な所、自分はoverrideの仕組みがいまいち解っていません。
是非ご教授願いたいところなのですが、この場合、「Pageコントロール
という標準コントロールを継承したコントロール」とはデフォルトで
作られるページ名を冠したクラスのことと思いますが、その中に普通の
関数のように入れるだけでよろしいでしょうか?


詳しいことは
http://jibun.atmarkit.co.jp/scenter/bbs/viewforum.php?forum=21&315
ここの「オブジェクト講座」でそろそろ出てくると思います。とりあえずは、「基のクラスの操作内容を変更する」とだけ、覚えておいてください。

 まず、エラーですが、そりゃぁ、GetMyState()は、ソース例に出ていないところで定義されているメソッドなので、エラーになります。これを置き換えてください。

コード:
protected override Object SavePrivateViewState()
{
    Object baseState = base.SavePrivateViewState;
    Object myState = 保存する内容;

    if (baseState == null && myState == null)
        return null;
    else if (myState == null)
        return baseState;
    else
        return new Object[] { baseState, myState };
}

protected override void LoadPrivateViewState(Object state)
{
    if (state is Object[])
    {
        Object[] arr = (Object [])state;
        base.LoadPrivateViewState(arr[0]);
        保存内容を復元する(arr[1]);
    }
    else if (state != null)
        base.LoadPrivateViewState(state);
}



 baseStateはページのViewStateなので、使用していないなら律儀に保存、復元してやる必要はありません。ページ内のコントロールの分は入っていません。あくまでもページが持つ分だけです。
 また、保存する内容は、Stringクラスに変換可能でなければならず、もちろん復元時もStringクラスからの復元となります。
ターキッシュ
大ベテラン
会議室デビュー日: 2003/01/15
投稿数: 126
投稿日時: 2004-01-30 15:14
Jitta様ご返答ありがとうございます。

何とか自分でできる所まで頑張ってみます。
また壁にぶつかったら質問させていただきます。

今後もよろしくご指導お願いします。

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