The best way is to publish DropDownList (or just SelectedValue) through a property:
public class AddTemplateToGridView : ITemplate
{
ListItemType _type;
string _colName;
DropDownList _ht;
public DropDownList InnerDropDown { get { return _ht; } }
public string SelectedValue { get { return _ht == null ? string.Empty : _ht.SelectedValue; } }
public AddTemplateToGridView(ListItemType type, string colname)
{
_type = type;
_colName = colname;
}
void ITemplate.InstantiateIn(System.Web.UI.Control container)
{
switch (_type)
{
case ListItemType.Item:
_ht = new DropDownList();
_ht.ID = "ht"+_colName;
_ht.Width = 50;
_ht.Items.Add(new ListItem("Select", "Select"));
_ht.Items.Add(new ListItem("P", "P"));
_ht.Items.Add(new ListItem("A", "A"));
_ht.Items.Add(new ListItem("H", "H"));
_ht.Items.Add(new ListItem("S", "S"));
_ht.Items.Add(new ListItem("L", "L"));
_ht.DataBinding += new EventHandler(ht_DataBinding);
container.Controls.Add(_ht);
break;
}
}
}