如何访问内容页面中母版页的动态加载服务器控件?

时间:2013-10-31 11:38:24

标签: c# asp.net servercontrols servercontrol parsecontrol

我创建了母版页,并从内容页面中将一些服务器控件加载到母版页。

 Control ctrl = Page.ParseControl(result);
 ContentPlaceHolder cph = (ContentPlaceHolder)this.Page.Master.FindControl("ContentPlaceHolder1");
            cph.Controls.Add(ctrl);

现在我需要访问“内容中的控件”页面。  但解析控件后,指定的id会更改。它看起来像下面。

 <input type="submit" name="ctl00$ContentPlaceHolder1$reset" value="reset" onclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(&quot;ctl00$ContentPlaceHolder1$reset&quot;, &quot;&quot;, true, &quot;&quot;, &quot;&quot;, false, false))" id="ctl00_ContentPlaceHolder1_reset" />

那么如何在内容页面中访问这些控件呢?

1 个答案:

答案 0 :(得分:0)

在将控件添加到母版页以便稍后查找控件之前,您还必须提供id

Control ctrl = Page.ParseControl(result);
ctrl.ID="ContentPlaceHolder1_reset";
ContentPlaceHolder cph = (ContentPlaceHolder)this.Page.Master.FindControl("ContentPlaceHolder1");
cph.Controls.Add(ctrl);

希望这适合你。

<强>更新

如果要添加TextBox列表,则可以按如下方式向TextBox提供id

for (int i = 1; i < 11; i++)
    {
        TextBox t1 = new TextBox();
        t1.ID = "TextBox" + i;
        ContentPlaceHolder cph = (ContentPlaceHolder)this.Page.Master.FindControl("ContentPlaceHolder1");
        cph.Controls.Add(t1);
    }

这里我将10个TextBox添加到您的母版页。