无法在page_load方法中访问服务器控件

时间:2014-03-06 13:30:44

标签: c# asp.net

我在html表格中的aspx页面中有占位符,如下所示:

<div id="div1" runat="server" onmouseover="divexpand()" onmouseout="collapsediv()">
    <span id="sp"><i>Status:</i></span>
        <div id="div2" style="display:block;">
        <table style="padding:10px;">
            <tbody><tr>
                <td>A:</td>
                <td>
                    <asp:PlaceHolder ID="ph1" runat="server"></asp:PlaceHolder>
                </td>
                <td>
                    <asp:PlaceHolder ID="ph2" runat="server"></asp:PlaceHolder>
                </td>
            </tr>
         </tbody>
        </table>
    </div>

我试图使用Page.FindControl(id)方法在page_load方法代码上访问占位符'ph1'和'ph2',如下所示:

protected void Page_Load(object sender, EventArgs e)
    {
        PlaceHolder ph1 = Page.FindControl("ph1") as PlaceHolder;
        PlaceHolder ph2 = Page.FindControl("ph2") as PlaceHolder;
        ph1.Controls.Add(new LiteralControl("<b><i>TEST</i></b>"));
        ph2.Controls.Add(new LiteralControl("<b><i>TEST</i></b>"));
    }

但我无法访问占位符。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

你应该从没有Page.FindControl

的代码中向placeholder添加控件

答案 1 :(得分:0)

在此上下文中无需使用FindControl。使用各自的ID直接从代码隐藏中直接访问PlaceHolder控件。