4
protected void addMoreDay_btn_Click(object sender, EventArgs e)
        {
            Control OneMoreDay = LoadControl("~/controls/Days/DayAdd.ascx");
            Days_div.Controls.Add(OneMoreDay);
        }

userControl を div 要素に動的にロードします..しかし、問題はそれが一度しか機能しないことです! ..つまり、addMoreDay_btnボタンをクリックすると機能し、もう一度クリックしようとすると、コントロールの別のインスタンスが作成されません!

編集

私はそれが機能すると思いますが、最後に作成されたものを保存しません..新しく作成されたコントロールに置き換えるだけです..それでも私はこれを解決する方法がわかりません! =S

4

1 に答える 1

5

この問題は、動的に追加されたコントロールが、再作成される直前に各ポストバックで破棄されるために発生しています。ポストバック後も動的コントロールを維持するには、ページがポストバックするたびにそれらを追加する必要があります。

次のコードを試してください。コントロールが Page_Init メソッドに追加されていることに注意してください。

protected void addMoreDay_btn_Click(object sender, EventArgs e)
{
    Control OneMoreDay = LoadControl("~/controls/Days/DayAdd.ascx");
    Days_div.Controls.Add(OneMoreDay);
    Session["MyControl"] += 1
}


protected void Page_Init(object sender, EventArgs e)
{
    for (int i = 1; i <= (int)Session["MyControl"]; i++) {
        Control OneMoreDay = LoadControl("~/controls/Days/DayAdd.ascx");
        Days_div.Controls.Add(OneMoreDay);        
    }
}

こちらをご覧ください

于 2011-07-16T03:36:47.603 に答える