例えば;
panel1.Controls.Add(myControl);
コレクションの最後に追加します。
先頭のものを置き換えずにコレクションの先頭に追加する方法はありますか?
panel1.Controls.AddAt(0, myControl)
コントロールを 0 に置き換えます。
アップデート
実際には機能しているようで、置き換えられません。私はそれを間違えたかもしれません。
メソッドを使用できますControlCollection.SetChildIndex
。
コレクション内の指定された子コントロールのインデックスを、指定されたインデックス値に設定します。
が
SetChildIndex
呼び出されるとControl
、child パラメータによって参照される が newIndex によって指定された位置に移動され、その移動に合わせて 内の他のControl
参照Control.ControlCollection
が並べ替えられます。
これを試して :
List<Literal> persistControls = new List<Literal>();
protected void Page_Load(object sender, EventArgs e)
{
display();
}
protected void commentButton_Click(object sender, EventArgs e)
{
Literal myComment = new Literal();
myComment.Text = "<p>" + commentBox.Text + "</p><br />";
commentPanel.Controls.Add(myComment);
persistControls.Insert(0,myComment);
Session["persistControls"] = persistControls;
display();
}
void display()
{
// if you already have some literal populated
if (Session["persistControls"] != null)
{
// pull them out of the session
persistControls = (List<Literal>)Session["persistControls"];
foreach (Literal ltrls in persistControls)
commentPanel.Controls.Add(ltrls); // and push them back into the page
}
}