У меня есть раскрывающийся список, содержащий некоторые варианты. На основе выбора пользователя мне нужно создать некоторые динамические элементы управления и отобразить их в форме.Создание динамических элементов управления на основе выбранного значения статического управления
Я понимаю, что динамические элементы управления необходимо создавать в OnInit или в CreateChildControls, чтобы ViewState для этих динамических элементов управления корректно восстанавливался во время выполнения.
Проблема заключается в том, что я не могу получить SelectedValue выпадающего списка в OnInit или CreateChildControls, поскольку ViewState еще не восстановлен для раскрывающегося списка.
Есть ли способ, чтобы получить текущий выбор, так что я могу создавать динамические элементы управления на основе текущего выбора пользователя и добавить их страницу правильно
EDIT: Разметка выглядит следующим образом:
<form id="form1" runat="server">
<div>
<asp:DropDownList ID="ddl" runat="server" AutoPostBack="true" AppendDataBoundItems="true">
<asp:ListItem Text="(Select Color)" Value="" />
<asp:ListItem Text="Red" Value="Red" />
<asp:ListItem Text="Green" Value="Green" />
<asp:ListItem Text="Blue" Value="Blue" />
</asp:DropDownList>
<asp:PlaceHolder ID="plHolder" runat="server" />
</div>
</form>
и вот код позади:
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected override void CreateChildControls()
{
base.CreateChildControls();
TextBox tb = new TextBox();
if (ddl.Text != "")
{
tb.Text = ddl.Text;
if (Session["id"] != null)
{
string id = Session["id"].ToString();
tb.ID = id;
}
else
{
Session["id"] = tb.ID = Guid.NewGuid().ToString().Replace("-", "");
}
plHolder.Controls.Add(tb);
}
}
}
на линии "tb.Text = ddl.Text;" Я надеюсь получить текущий выбор и на основе этого установить значение свойства text для динамического элемента управления. Но текущий выбор еще не установлен, так как он включен в OnInit.
вам нужно разместить код, чтобы проверить, где проблема, в соответствии с вашим заявлением кажется ОК. –
Я добавил некоторый код, чтобы зафиксировать суть того, что я пытаюсь сделать. –