У меня есть выпадающий список в ретрансляторе. Я хочу, чтобы всякий раз, когда была добавлена обратная передача, переформатируйте раскрывающийся список.Переустановите выпадающий список в ретрансляторе
Проблема заключается в том, что когда я дебютирую эту вещь, код выполнялся через ddl.databind(), но для некоторых резонов выпадающий список по-прежнему загружает список и выбранное значение из исходного состояния представлений. Я знаю, потому что, если я установил параметр EnableViewState для ddl как «false», я могу правильно восстановить ddl.
Любые предложения?
<asp:Repeater ID="reEventsDataTypeOthers" runat="server" Visible="false">
...
<ItemTemplate>
...
<asp:DropDownList ID="ddlEventSessionLocation" runat="server" CssClass="ddlControlS1L" Title="Location" EnableViewState="true"/>
Codebehinde (я пытался связать его в _ItemCreated и _ItemDataBound, но оба faied):
void reEventsDataTypeOthers_ItemCreated(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType != ListItemType.Item && e.Item.ItemType != ListItemType.AlternatingItem)
return;
FSIDropDownList ddl = e.Item.FindControl("ddlEventSessionLocation") as FSIDropDownList;
if (ddl != null && ddl.SelectedValue != "NOTSET")
{
ddl.DataSource = EventLocations;
ddl.DataTextField = "Value";
ddl.DataValueField = "Key";
ddl.DataBind();
ddl.Items.Insert(0, new ListItem("Not Set", "NOTSET"));
}
}
UPDATE, проблема решена:
То, что я поставлен в DROPDOWNLIST привязку кода в методе события prerender этого ретранслятора, таким образом, может перезаписать значение viewstate.