0

我正在尝试在部分回发上填充下拉列表,不知道为什么它不起作用。

这有效,

protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                 populatemyDropDownList();
            }

这不起作用,

protected void Page_Load(object sender, EventArgs e)
            {
                if (IsPostBack)
                {
                     populatemyDropDownList();
                }

设想

*我单击 UpdatePanel_1 中的 button_1,然后触发部分回发(无页面刷新)并尝试填充 UpdatePanel_2 中的 DropDownList*

当我调试时,我可以看到方法后面的代码正在触发并通过此代码但没有收获,我认为部分回发重置 DropDownList ????

using (SqlDataSource sqlds = new SqlDataSource(ConnectionString(), SelectCommand()))
            {
                drop1.DataSource = sqlds;
                drop1.DataTextField = "UserName";
                drop1.DataBind();
            }
4

1 回答 1

1

你可以使用

ScriptManager.GetCurrent(Page).IsInAsyncPostBack

检查您是否处于异步回发中。

但是,我不会将您的逻辑依赖于回发(或!IsPostBack)和IsInAsyncPostBack. 相反,我会使用正确的事件。在这种情况下你要处理的点击事件来button_1填写DropDownListUpdatePanel2

请注意,您应该UpdatePanel2设置 's UpdateMode Conditional。然后你可以UpdatePanel2.Update()在填写完之后手动调用DropDownList

于 2013-05-08T09:24:56.457 回答