2012-04-24 2 views
1

У меня есть выпадающий список в ретрансляторе. Я хочу, чтобы всякий раз, когда была добавлена ​​обратная передача, переформатируйте раскрывающийся список.Переустановите выпадающий список в ретрансляторе

Проблема заключается в том, что когда я дебютирую эту вещь, код выполнялся через 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.

ответ

0

выпадающий список, вероятно, переписывается в viewstate, не забудьте заполнить его после завершения инициализации страницы, например, при загрузке страницы. См. Цикл страниц здесь: http://msdn.microsoft.com/en-us/library/ms178472.aspx

Смежные вопросы