Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 以编程方式添加时在占位符中找不到控件_C#_Asp.net_.net - Fatal编程技术网

C# 以编程方式添加时在占位符中找不到控件

C# 以编程方式添加时在占位符中找不到控件,c#,asp.net,.net,C#,Asp.net,.net,我有一个奇怪的问题,我不太确定如何解决。我试图做的是在单击按钮时从一些控件中获取值。控件位于Web用户控件中,因此我可以根据需要多次加载该控件(每个控件值由我指定的公共属性返回)。然后将它们添加到占位符中。因此,我首先通过单击按钮添加控件: protected void AddControls { MyMyWebUserControl CustInfo = (MyWebUserControl)LoadControl("MyWebUserControl.ascx")

我有一个奇怪的问题,我不太确定如何解决。我试图做的是在单击按钮时从一些控件中获取值。控件位于Web用户控件中,因此我可以根据需要多次加载该控件(每个控件值由我指定的公共属性返回)。然后将它们添加到占位符中。因此,我首先通过单击按钮添加控件:

    protected void AddControls
    {
        MyMyWebUserControl CustInfo = (MyWebUserControl)LoadControl("MyWebUserControl.ascx");

        for (int c = 0; c <= 10; c++)
        {
             CustInfo.ID = "CustomCtrl" + c + 1;
             myPlaceHolder.Controls.Add(CustInfo);
        }
    }
myPlaceHolder中的计数始终为0

我尝试添加一些代码来测试页面加载时的回发

if(!(Page.IsPostBack))
{
   AddControls();
}

这无法解决。

您说“我首先通过单击按钮添加控件”。这使我认为您试图在回发期间添加控件。这是真的吗?这将导致
!(Page.IsPostBack)
以防止调用AddControls。用户可以选择输入所需的控件数量(例如,如果他们想在其策略中添加其他驱动程序)。一旦他们输入了他们想要添加的额外驱动程序的数量,他们就会按下一个按钮,显示那个么多条控制线。希望这有意义?有意义-当按下第一个按钮时调用AddControls()并显示它们,但在按下第二个按钮后,集合返回为空?我想这可能是你的问题:(至少是消失部分)不确定我是否遗漏了什么,但按钮1和2都在标记中。占位符仅包含允许用户输入详细信息的文本框。链接似乎是在看一个动态创建的按钮,我不知道??我明白为什么不完全清楚。在您的例子中,所有的
mywebusercontrol
都像文章中的“button2”。
if(!(Page.IsPostBack))
{
   AddControls();
}