Создал класс-наследник от BoundField
реализовал у него метод InitializeDataCell
создаю в нем DropDownList и заполняю его список данными из таблицв примерно так
DropDownList dropDownList = new DropDownList();
DataTable table = CallCenterDataProvider.GetDataTable(TableName);
if (table != null)
{
DataView dataView = new DataView(table);
dropDownList.DataSource = dataView;
dropDownList.DataTextField = DataTextField;
dropDownList.DataValueField = DataValueField;
dropDownList.DataBind();
}
//adding new Null row for setting Null Value
dropDownList.Items.Insert(0, new ListItem("Null")); // тут проблема...
проблема с последней строчкой...
на момент создания она добавляется...
в override OnDataBindField
я выставяю значение из источника данных и в беггере нахожу в списке ListItem мой Null ListItem
но при отображении на странице происходит странная штука...
все отображается замечательно и DropDownList и значение поля из источника данных но при раскрытии списка не нахожу там
мой Null ListItem. Он куда то пропадает.
Странно что пропадает только этот Item, все остальные замечательно поддунулись из DataView...
В чем может быть проблема?
Спасибо..
вся фишка в DataBind который я вызываю на DropDownList
в момент когда я его вызываю (в момент создания контрола) у Eventa DataBinding нету подписчиков а далее в InitializeDataCell делаю так для выставления значения из источника данных
boundField.DataBinding += new EventHandler(OnDataBindField);
и потом он в какой то момент времени перебинживает все Items.... и на этот раз без вручнуб добавленного Null ListItem. кэширует что ли где то