用asp.net控件創建一個無序列表?




c# nested repeater (2)

我會建議創建一個HtmlGenericControls樹: http : //msdn.microsoft.com/library/system.web.ui.htmlcontrols.htmlgenericcontrol.aspx

我已經有了這個Web控件,我一直在動態地添加控件,但是現在需要在控件周圍添加一個有序列表。

為了呈現控件,我將控件添加到ControlsCollection

    protected void Page_Load(object sender, EventArgs e)
    {
        var document = XDocument.Load(@"http://localhost:49179/XML/Templatek.xml");
        var builder = ObjectFactory.GetInstance<IControlBuilder>();
        var controls =builder.BuildControls(document);
        controls.ToList().ForEach(c => Controls.Add(c));

    }

這是我想要構建的html + aspnet ctrls:

 <fieldset>
    <ol>
      <li>
        <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
      </li>
      <li>
          <asp:TextBox runat="server" ID="TextBox1"></asp:TextBox>
      </li>
    </ol>
    </fieldset>

如何將控件放置在列表項中? 我需要以不同的方式解決問題嗎?


Answer #1

改變這一行:

controls.ToList().ForEach(c => Controls.Add(c)); 

為了這些路線:

Control ol = new HtmlGenericControl("ol");
controls.ToList().ForEach(c => ol.Controls.Add(new HtmlGenericControl("li").Controls.Add(c)));
Controls.Add(ol);

編輯:

    Control ol = new HtmlGenericControl("ol");
    controls.ToList().ForEach(c =>
                                  {
                                      var li = new HtmlGenericControl("li");
                                      li.Controls.Add(c);
                                      ol.Controls.Add(li);
                                  });
    Controls.Add(ol);




webforms