例如;
panel1.Controls.Add(myControl);
添加到集合的末尾。
有没有办法添加到集合的开头而不替换开头的那个?
panel1.Controls.AddAt(0, myControl)
将控件替换为0。
更新
实际上它似乎工作而不是取代它。我可能弄错了。答案 0 :(得分:5)
您可以使用ControlCollection.SetChildIndex
方法。
将集合中指定子控件的索引设置为 指定的索引值。
调用
SetChildIndex
时,孩子提到的Control
参数移动到newIndex和另一个指定的位置Control
中的Control.ControlCollection
个引用被重新排序 适应这一举动。
答案 1 :(得分:0)
试试这个:
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
}
}