_测试.aspx
<asp:ScriptManager runat="server" />
<asp:DropDownList ID="ddl" runat="server" DataSource='<%# new string[] { "A", "B", "C" } %>' />
<asp:Button ID="b" runat="server" UseSubmitBehavior="false" OnClick="b_Click" Text="Test 1" />
protected void Page_Load(object sender, EventArgs e)
{
this.DataBind();
this.ddl.SelectedValue = "B";
}
protected void b_Click(object sender, EventArgs e)
{
Console.WriteLine("Updated");
}
在这个例子中
ddl
将在上绑定“A”、“B”和“C”
Page_Load
在我的例子中,我需要在动态加载的
UserControl
添加到
Placeholder
.因为一个
占位符
不会持久化每次回发时重新创建控件所需的内容。这个
ViewState
似乎没问题。以下是一个示例:
_测试.aspx
<asp:ScriptManager runat="server" />
<asp:PlaceHolder ID="ph" runat="server" />
_测试.aspx.cs
protected void Page_Load(object sender, EventArgs e)
{
_TESTUC uc = (_TESTUC)this.Page.LoadControl("~/Controls/_TESTUC.ascx");
this.ph.Controls.Add(uc);
}
_测试.ascx
<asp:DropDownList ID="ddl" runat="server" DataSource='<%# new string[] { "A", "B", "C" } %>' />
<asp:Button ID="b" runat="server" UseSubmitBehavior="false" OnClick="b_Click" Text="Test 2" />
_测试.ascx.cs
protected void Page_Load(对象发送方,EventArgs e)
{
this.DataBind();
此.ddl。SelectedValue=“B”;
}
protected void b_Click(对象发送方,EventArgs e)
{
Console.WriteLine(“已更新”);
}
同样,每次回发时,我都想重置
DropDownList
出于测试目的,但有趣的是它记住了我的选择。
我能做什么来解决这个问题?