- PR -

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

投稿者投稿内容
ターキッシュ
大ベテラン
会議室デビュー日: 2003/01/15
投稿数: 126
投稿日時: 2004-01-29 19:32
Jitta様ご返答ありがとうございます。

早速試して見ましたが、コンパイルエラーに陥ります。

public class Text_Box_Add : System.Web.UI.MobileControls.TextBox{
protected override Object SavePrivateViewState()
{
Object baseState = base.SavePrivateViewState();
Object myState = GetMyState();

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]);
LoadMyState(arr[1]);
}
else if (state != null)
base.LoadPrivateViewState(state);
}
}


public class TEST_SITE : System.Web.UI.MobileControls.MobilePage
{
.......
}

と並列に表記しましたが、
「名前 'GetMyState' は クラスまたは名前空間 'Text_Box_Add' に存在しません。」

「名前 'LoadMyState' は クラスまたは名前空間 'Text_Box_Add' に存在しません。」
となってしまいます。

表記の仕方が間違っていますでしょうか?
誠に何度も申し訳ありませんが、よろしくご教授お願いします。
ターキッシュ
大ベテラン
会議室デビュー日: 2003/01/15
投稿数: 126
投稿日時: 2004-01-29 19:59
きくちゃん様ご返事ありがとうございます。

page_load時に
if(this.HiddenVariables["DATA"]!=null){
   string s=this.HiddenVariables["DATA"].ToString();
}

データ取得時に
this.HiddenVariables["DATA"]=INPUT_DATA;

とやることによってデータの取得に成功したのですが、
この情報はクライアントの物で間違いないですよね?

正直、今日一日ずっとこの問題に取り組んでいて、
サーバが持ってる情報なのか、クライアントが持ってる
情報なのかかなり混乱してしまってます。

誠に素人のような質問で申し訳ありませんが、よろしく
ご教授お願いします。



引用:

きくちゃんさんの書き込み (2004-01-29 18:53) より:


MobilePage.HiddenVariables プロパティが使えそうですけど、どうでしょう?



きくちゃん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 854
お住まい・勤務地: 都内某所
投稿日時: 2004-01-29 20:12
ターキッシュさん、こんばんは。

引用:

この情報はクライアントの物で間違いないですよね?


MSDNライブラリ「ASP.NET モバイル コントロール」-「セッション状態の管理」に、隠し変数という項目がありますが、そこにはそれらしい事が書いてあります。

IEで見る限りは、
<input type="hidden" name="__V_hogehoge" value="hogehoge">
となっていますが、一応、各デバイス用のエミュレータで確認してみて下さい。
#エミュレータでソース確認出来るのかな...。
ターキッシュ
大ベテラン
会議室デビュー日: 2003/01/15
投稿数: 126
投稿日時: 2004-01-29 20:20
きくちゃん様ありがとうございました。

確認できました、実機の方ではまだですが、おそらく大丈夫です。
いやー、かなり苦労しましたが、ようやく完成しそうです。

今後もよろしくご教授お願いします。

引用:

きくちゃんさんの書き込み (2004-01-29 20:12) より:
IEで見る限りは、
<input type="hidden" name="__V_hogehoge" value="hogehoge">
となっていますが、一応、各デバイス用のエミュレータで確認してみて下さい。
#エミュレータでソース確認出来るのかな...。


ターキッシュ
大ベテラン
会議室デビュー日: 2003/01/15
投稿数: 126
投稿日時: 2004-01-29 20:23
Jitta様

一応の解決はしましたが、overrideの方法も是非勉強したいです。
あのソースで問題ありましたら、教えて頂きたく思っております。

よろしくご教授お願いします。
NAL-6295
ぬし
会議室デビュー日: 2003/01/26
投稿数: 966
お住まい・勤務地: 東京
投稿日時: 2004-01-29 23:28
引用:

Jittaさんの書き込み (2004-01-29 18:21) より:
引用:

NAL-6295さんの書き込み (2004-01-29 17:14) より:

どういう条件で発生するのでしょうか・・・。
VS.NET2003で開発していますがHTMLコントロールもrunat="server"なら自動で追加されてます。

書き忘れましたが、VB.NETです。


 HTMLコントロールは、追加(ツールボックスからドラッグドロップ)した時点では「runat」属性は付いていないと思いますが?また、プロパティウインドウからも変更できない・・・のですが、私の環境では。
 .aspxに直打ちした場合、追加されていたかも。ちょっと記憶があやふやです。webユーザコントロールは「runat="server"」でも追加されない。これはサポート技術情報にも載っている。。。



ええ。最初はrunat属性はついてません。
1・HTMLコントロールをドラッグアンドドロップで追加。
2・コントロールにあわせて、コンテキストメニューを開いて
3・「サーバーコントロールとして実行」を選ぶ
で、サーバーコントロールになります。
(runat="server"になるって事。)
そんでもって、コードの方に画面遷移すると、自動で作成されていたりします。

っていう僕の環境がおかしいのかな・・・。

ちなみに、webユーザコントロールは僕の環境でも自動で追加されません。


[ メッセージ編集済み 編集者: NAL-6295 編集日時 2004-01-29 23:31 ]

[ メッセージ編集済み 編集者: NAL-6295 編集日時 2004-01-29 23:33 ]
きくちゃん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 854
お住まい・勤務地: 都内某所
投稿日時: 2004-01-30 09:11
NAL-6295さん、お早うございます。

引用:

3・「サーバーコントロールとして実行」を選ぶ
で、サーバーコントロールになります。


↑知らなかった...。
#今までHTMLビューで自分で打ってました。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-01-30 10:21
引用:

きくちゃんさんの書き込み (2004-01-30 09:11) より:
NAL-6295さん、お早うございます。

引用:

3・「サーバーコントロールとして実行」を選ぶ
で、サーバーコントロールになります。


↑知らなかった...。
#今までHTMLビューで自分で打ってました。



おなじく・・・

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