2014-09-03 1 views
1

У меня есть следующий код в моем MasterPage:Как добавить элемент управления из кода позади в DIV

<asp:UpdatePanel runat="server" UpdateMode="Conditional" ID="upTaskStatus" ClientIDMode="Static"> 
    <ContentTemplate> 
     <asp:Panel ID="Panel101" runat="server" CssClass="navInnerDiv" Width="100px" ClientIDMode="Static"> 
      <asp:Panel ID="Panel102" runat="server" CssClass="navInnerDivContents"> 
       <asp:Panel ID="Panel103" runat="server" CssClass="navInnerDivContentsTop"> 
        <asp:Label ID="lblTempHolder" runat="server" Text="" ClientIDMode="Static"></asp:Label> 
       </asp:Panel> 
       <asp:Panel ID="Panel106" runat="server" CssClass="navInnerDivContentsBottom"> 
        Task Status 
       </asp:Panel> 
      </asp:Panel> 
     </asp:Panel> 
    </ContentTemplate> 
</asp:UpdatePanel> 

Я пытаюсь добавить DIV {панель} из кода позади внутри Panel103.

Я добавил следующее в моем Содержание страницы:

strCO = @"<asp:Panel ID='Panel100' runat='server' CssClass='navInnerDivContentsTopSubTwo'> 
         <asp:ImageButton ID='ibCheckOut' ImageUrl='~/theImages/CheckOut.png\' runat='server' CssClass='navImages' OnClick='btnComplete_Click' /> 
         <br /> 
         <asp:LinkButton ID='lbCheckOut' runat='server' Text='Checkout' ClientIDMode='Static' OnClick='btnComplete_Click' CssClass='linkOff' /> 
        </asp:Panel>"; 

System.Web.UI.WebControls.Label pnlTaskS = (System.Web.UI.WebControls.Label)Master.FindControl("lblTempHolder"); 
      pnlTaskS.Text = strCO; 

      System.Web.UI.UpdatePanel upT = (System.Web.UI.UpdatePanel)Master.FindControl("upTaskStatus"); 
      upT.Update(); 

Когда я проверяю исходный код страницы, я могу видеть strCO сгенерированного, но изображение, ни LinkButton показан на переднем конце.

Как изменить код, чтобы добавить DIV {панель} из кода?

+0

Почему вы не используете обычную разметку ASP.NET, чтобы добавить эту панель, аналогичным образом в вашей Masterpage разметке? –

+0

В макете у меня есть ширина набора в родительской панели – SearchForKnowledge

ответ

1

Создание элемента управления в каждом постбэка и добавить его в Panel103:

public void Page_Load(object sender, EventArgs e) 
{ 
    var pnl = new Panel { ID = "Panel100" }; 
    pnl.Controls.Add(new ImageButton()); 
    Panel103.Controls.Add(pnl); 
} 
+0

'ImageButton()' должен быть определен в первую очередь? – SearchForKnowledge