- PR -

Webユーザコントロールの新規プロパティの動作について

1
投稿者投稿内容
たばげろ
会議室デビュー日: 2005/04/11
投稿数: 5
投稿日時: 2005-04-27 15:53
いつも、勉強させていただいてます。
申し訳ありませんが、教えてください。

ASP.NET(VS2003)にてWEBアプリケーションを作成しています。

そこで、Webユーザコントロールを作成し、新規のプロパティを追加しているんですが、
ページ内に指定した値の取得はできるのですが、変更してもその後のポストバック時には、
プロパティ値が、元に戻ってしまうんです。

1.Webユーザコントロールを貼り付けたページに新規のプロパティを記述
<uc1:XXXXCONTROL id="XXX" ranat="server" XXXXTEXT="3"></uc1:XXXXCONTROL>

2.初回要求(またはポストバック)時に XXXXTEXTプロパティを4に変更する。

3.変更した後、同一ページにポストバックしてもデザイン時の値が取得されてしまいます。

そもそもユーザコントロールであり、ユーザコントロール内のコントロールには関係のない
プロパティなので、SaveViewStateメソッドを発行しても、保存されなかったのですが、
なにか別途しなくてはいけないことがあるのでしょうか?
にしざき
ぬし
会議室デビュー日: 2003/06/30
投稿数: 304
投稿日時: 2005-04-27 16:24
保持しておきたいプロパティに関しては、
コントロールの状態の維持に従って ViewState に保存するのが簡単です。
たばげろ
会議室デビュー日: 2005/04/11
投稿数: 5
投稿日時: 2005-04-27 16:55
にしざき さま

ありがとうございました。
早速試してみたいと思います。

同一ページに同じユーザコントロールをいくつか貼り付けしようと思っているのですが、
コントロール単位で管理されているようなので、プロパティ名をそのまま使用しても、
よさそうですね。

本当にありがとうございました。
tkd
会議室デビュー日: 2005/05/16
投稿数: 1
投稿日時: 2005-05-16 20:11
私もVS2003にてASP.NETのWEBアプリケーション開発をやっております。

たばげろさんと同じような現象で悩んでおります。

ページングを表示するユーザコントロールを作りました。

私の場合、デフォルトプロパティは記述していません。
<uc1:Paging id="UcPaging" runat="server"></uc1:Paging>

ポストバックし、DB検索結果に基づきユーザコントロールプロパティを
設定しました。

UcPaging.PageCount = Count
UcPaging.PageWidth = Width
UcPaging.AllCount = AllCount
UcPaging.Url = "xxxx.aspx"
UcPaging.PageFrom = 1
UcPaging.PageTo = Count

しかし、ユーザコントロールプロパティが設定できません。


にしざき様の回答、
>コントロールの状態の維持に従って ViewState に保存するのが簡単です。

これらのプロパティをViewStateに保存するということでしょうか。

要領を得ない質問で申し訳ありませんが、よろしくお願いいたします。
1

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