0

この Control を作成するページ (WebForms) の Page_Load() で、次のようにします。

HtmlGenericControl optionBox = new HtmlGenericControl("div");
optionBox.Attributes["class"] = "class_1";

それよりも、使用は LinkBut​​ton を使用してページをリコールします。このボタンから呼び出されたメソッドで、前の div のクラスを変更します。

protected void cmdCerca_Click(object sender, EventArgs e)
{
    ...
    div.Attributes.Add("class", "class_2");
    ...
}

レンダリング結果を見ると、div のクラスが変更されていることがわかります。

これは、このページへの次の呼び出し (このコンテキストから、呼び出しの例cmdCerca_2_Click) で、そのオブジェクトがビューから回復され、class_2ではなくを取得することを意味しclass_1ます。

cmdCerca_Clickしかし、 の最後にで同じページを呼び出すと、これは起こりませんResponse.Redirect()。ビューが失われるようです。

なんで?どうすれば修正できますか?

質問が明確であることを願っています。

4

1 に答える 1

2

コントロールをコントロール ツリーに入れるには、ロードするのではなく、ページの初期化イベントにコントロールを追加する必要があります。

ポストバックごとにこのコントロールを再作成する必要がありますか? この場合、デフォルトのクラスが毎回設定されます。

于 2012-05-08T08:22:25.633 に答える