Skip to content Skip to sidebar Skip to footer

Add Div Around Every Asp:dropdownlist Control Code Behind

I try to simply add a div wrapper around every control of type at a global level (if possible). At this point I have solved it with a asp skin adding 'defa

Solution 1:

Your solution just about works. Server control can only exist within the scope of a server form, you will need to perform a recursive search on the page or look directly in the form controls collection. Once you have the DropDownList and wrapped it around a div container it will need to be added to the controls collection.

Also, I think it better to perform this in OnPreInit.

protectedoverridevoidOnPreInit(EventArgs e)
{
base.OnPreInit(e);

var j = 0;
foreach (DropDownList control in form1.Controls.OfType<DropDownList>().ToList())
{
    var div = new HtmlGenericControl();
    div.ID = "div" + j;
    div.TagName = "div";
    div.Attributes["class"] = "myClass";
    div.Controls.Add(control); // or control.Controls.Add(div); but this wouldn't wrap it.
    j++;

    form1.Controls.Add(div);
}

}

I hope this is helpful. Let me know how you get on.

Solution 2:

Either way what you're wanting is custom and you have to code for it. So IMO, the best and simplest option is the custom control. You may have to spend some time refactoring references to replace your <asp:DropDownList>, but in all the time you've spent trying another way, you could've been done by now. :)

I've learned the hard way that keeping it simple is usually the best way to go.

Post a Comment for "Add Div Around Every Asp:dropdownlist Control Code Behind"