Я нашел решение, опять же, самостоятельно!
в коде ascx позади
[ParseChildren(true,"MyTabs")]
public partial class QucikTabsControl : System.Web.UI.UserControl
{
private List<Tab> _myTabs;
[PersistenceMode(PersistenceMode.InnerProperty)]
public List<Tab> MyTabs
{
get
{
if (_myTabs == null)
{
_myTabs = new List<Tab>();
}
return _myTabs;
}
}
}
protected void Page_Load(object sender, EventArgs e)
{
MyRepeater.DataSource = MyTabs.ToArray();
MyRepeater.DataBind();
}
где-то в app_code cs файлах
public class Tab
{
private string _sectionId;
public Tab(): this(String.Empty)
{
}
public Tab(string sectionid)
{
_sectionId = sectionid;
}
[Category("Behavior"),
DefaultValue(""),
Description("Section Id"),
NotifyParentProperty(true),
]
public String SectionId
{
get
{
return _sectionId;
}
set
{
_sectionId = value;
}
}
}
на странице aspx
<bni:tabs id="s" runat="server">
<w:tab sectionid="23" />
</bni:tabs>
причина, по которой я столкнулся с этой проблемой, проста: я являюсь разработчиком внешнего интерфейса, не хочу видеть один HTML-тег в коде позади!