例如;
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
}
}