在C#中创建DIV并向其添加控件

时间:2014-01-04 12:48:43

标签: c# asp.net dynamic controls

我有以下内容在c#

的asp页面上添加了一个布局
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>"));

然后我想最终在上面的一个div中添加一个图表。无论如何我可以访问div然后添加一个控件...?

之前我有以下

chart1_holder.Controls.Add(chart_location_1);

但是chart1_holder来自asp页面,而不是动态的。

2 个答案:

答案 0 :(得分:8)

使用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);

答案 1 :(得分:1)

如果您想生成一些此类控件,可以使用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>

然后你可以绑定它

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