2012-04-11 6 views
0

私のサンプルのasp.netアプリでは、hereが見つかりました。ページ初期化で動的コントロールを作成します。 次に、ユーザーがコントロールにテキストを入力してボタンをクリックすると、すべてのコントロールを新しい値で再作成する必要があります。asp.netダイナミックコントロールwierd値の問題

ページは、最初の行に入力された値をユーザーが手動で入力したデータで上書きします。

htmlコントロールやMVCに変更せずにこれを防止する方法はありますか?

答えて

0

私はコードを最初のロードまたはポストバックにするために変数を追加するために変数を追加する場所を自分で保つための回避策をとった。私はコントロールをクリアする新しい変数で同じページにリダイレクトしました。

フォームロード時にIsPostBackをチェックし、保存されたオブジェクト値からViewStateに割り当てられた値を再度置換する方法もあります。

まだ、ページおよびコントロールでViewstateを無効にすると、ダイナミックコントロールにviewstate値が設定されることがあります。

0

PageStatateはPage_Initイベントでは使用できません。作成をPage_Loadイベントに移動します。

+0

私はviewstate(どこでも無効にしてみました)を使いたくないし、page_Loadがページライフサイクルで遅すぎて、動的コントロールを追加してポストバック後も持続するようにしたくない。コントロールはそのまま使用されることもありますが、時々リフレッシュされるので、コントロールがサンプルアプリケーションごとにリフレッシュされるはずです。 – DeWet

+0

私はどこからあなたの来るがveiwstateを使いたくないのか理解していますが、コントロール内の値を維持したい場合は、viewstateを使用するか、ポストバック制御時に手動で値を設定する必要があります。 –

+0

私は状態をバックエンドに保持しているので、viewstateの必要はありません。ここでの問題は、バックエンド状態システムから来た値を上書きしないように、viewstate/controlstateを無視するようにページを取得する方法を見つけることができないことです。これまでのところ、私はResponse.Redirectと同じページにリダイレクトすることができました。私はコードを記述するためにクエリ文字列varを追加しなければならなかったので、私はポストバックを行いました......大きなハック。 – DeWet