Chris
Chris

Reputation: 175

Creating DIV in C# and adding controls to it

I have the following which adds a layout on the asp page in c#

chart_holder.Controls.Add(new LiteralControl("<div id='chart_location"+ i.ToString()+"'>" +
                        "<asp:Panel ID='chartbtns"+i.ToString() +
                   "'runat='server' Visible='true' >" +
                         "<div class='chart_button_container'>" +
                            "<div class='chart_buttons'> " +
                               "<ul class='menu2' >" +
                                   "<li> <a href='#' class='chart_buttons_image_save' title='Save'></a>" +
                                        "<ul><li> <asp:LinkButton ID='btnSaveXLSX" + i.ToString() + "' runat='server' oncommand='btnSaveXLSX_Click' CommandArgument='"+ i.ToString() +"' >Excel</asp:LinkButton></li> " +
                                        "<li> <asp:LinkButton ID='SavePDF" + i.ToString() + "' runat='server' oncommand='btnSavePDF_Click' CommandArgument='" + i.ToString() + "'>PDF</asp:LinkButton></li>" +
                                            "<li><asp:LinkButton ID='btnSaveimg" + i.ToString() + "' runat='server' oncommand='btnSaveimg_Click' CommandArgument='" + i.ToString() + "'>Image</asp:LinkButton> </li>" +
                                       " </ul>" +
                                    "</li>" +
                                "</ul>" +
                            "</div>" +
                            "<div class='chart_buttons'>" +
                                "<asp:LinkButton ID='enlarge_chart_" + i.ToString() + "'CssClass='chart_buttons_image_enlarge' style='background-image:url(/Images/1386870554_arrow-maximise.png)' Runat='server' oncommand='enlarge_chart_Click' CommandArgument='" + i.ToString() + "'></asp:LinkButton>" +
                            "</div>" +
                            "<div class='chart_buttons'>" +
                                "<asp:LinkButton ID='refresh_chart_" + i.ToString() + "' CssClass='chart_buttons_image_refresh' style='background-image:url(/Images/refresh.png)' Runat='server' CommandArgument='1'></asp:LinkButton>" +
                            "</div>" +
                       " </div>" +
                       "<div id ='chart" + i.ToString() + "_holder" +"' enableviewstate='true' runat='server' style='height:95%; width:100%'> </div>" +

                       "</asp:Panel>" +
                    "</div>"));

Then else where I want to eventually add a chart in one of the divs above. Is there anyway I can access the div and then add a control to it...?

previously I had the following

chart1_holder.Controls.Add(chart_location_1);

but chart1_holder was from the asp page and not dynamic.

Upvotes: 2

Views: 42445

Answers (2)

Sergey Litvinov
Sergey Litvinov

Reputation: 7478

If you want to generate a couple of such control, you can use Repeater

 <asp:Repeater runat="server" ID="rptItems">
  <ItemTemplate>
        <div id="chart_location"> 
        <asp:Panel ID="Panel1" runat="server" Visible="true" >
         <div class="chart_button_container"> 
            <div class="chart_buttons"> 
               <ul class="menu2" >
                   <li> <a href="#" class="chart_buttons_image_save" title="Save"></a>
                        <ul><li> <asp:LinkButton ID="LinkButton1" runat="server" oncommand="btnSaveXLSX_Click"CommandArgument="<%#Container.ItemIndex %>" >Excel</asp:LinkButton></li> 
                        <li> <asp:LinkButton ID="LinkButton2" runat="server" oncommand="btnSavePDF_Click" CommandArgument="<%#Container.ItemIndex %>">PDF</asp:LinkButton></li>
                            <li><asp:LinkButton ID="LinkButton3" runat="server" oncommand="btnSaveimg_Click" CommandArgument="<%#Container.ItemIndex %>">Image</asp:LinkButton> </li>
                       </ul>
                    </li>
                </ul>
            </div>
            <div class="chart_buttons">
                <asp:LinkButton ID="LinkButton4" CssClass="chart_buttons_image_enlarge" style="background-image:url(/Images/1386870554_arrow-maximise.png)" Runat="server" oncommand="enlarge_chart_Click" CommandArgument="<%#Container.ItemIndex %>"></asp:LinkButton>
            </div>
            <div class="chart_buttons">
                <asp:LinkButton ID="LinkButton5" CssClass="chart_buttons_image_refresh" style="background-image:url(/Images/refresh.png)" Runat="server" CommandArgument="1"></asp:LinkButton>
            </div>
       </div>
       <div id ="Div1" enableviewstate="true" runat="server" style="height:95%; width:100%"> </div>

       </asp:Panel>
    </div>
  </ItemTemplate>
</asp:Repeater>

And then you can bind it

rptItems.DataSource = yourDataItems;
rptItems.DataBind();

Upvotes: 1

user1968030
user1968030

Reputation:

Use this:

 System.Web.UI.HtmlControls.HtmlGenericControl createDiv =
        new System.Web.UI.HtmlControls.HtmlGenericControl("DIV");      
        createDiv.ID = "createDiv";
        createDiv.InnerHtml = " I'm a div, from code behind ";
        this.Controls.Add(createDiv);

Upvotes: 12

Related Questions