gpt4 book ai didi

c# - 获取控件的索引 : Controls. IndexOf 返回 -1

转载 作者:太空宇宙 更新时间:2023-11-03 19:52:24 24 4
gpt4 key购买 nike

在下面的代码块中,我尝试在 foreach 中迭代的当前控件之前插入一个控件。为此,我为我的新控件提供了当前迭代控件的索引,以便在该控件取代它时将其向前推进。

我的问题是 Controls.IndexOf 返回 -1,因此该控件被添加到页面末尾。

foreach (Control c in this.Controls.OfType<System.Web.UI.WebControls.PlaceHolder>().ToList())
{
foreach (Control cc in c.Controls.OfType<System.Web.UI.HtmlControls.HtmlGenericControl>().ToList())
{
if (cc is System.Web.UI.HtmlControls.HtmlGenericControl)
{
System.Web.UI.HtmlControls.HtmlGenericControl iframe = cc as System.Web.UI.HtmlControls.HtmlGenericControl;
if (iframe.Attributes["src"].Contains("slideshare"))
{
Response.Write("INDEX:"+this.Controls.IndexOf(cc)); // returns -1
iframe.Attributes["src"] = "/img/content/cookielaw_slideshare.jpg";

Literal lit=new Literal();
lit.Text = @"<div class='cookieLaw_slideshare'><a id='cookieLaw_slideshare' href='#'><img src='/img/content/cookielaw_slideshare.jpg'/></a></div>";
Page.Controls.AddAt(this.Controls.IndexOf(cc),lit);
}
}
}
}

预先感谢您的帮助

最佳答案

您正在寻找表单内的控件 (c),然后是该控件内的控件 (cc)。所以cc是c.controls,不是this.controls。

改变:

Response.Write("INDEX:"+this.Controls.IndexOf(cc));

与:

Response.Write("INDEX:"+c.Controls.IndexOf(cc));

关于c# - 获取控件的索引 : Controls. IndexOf 返回 -1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37408274/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com