【问题标题】:Drop Down List not getting populated on partial post back下拉列表未在部分回发时填充
【发布时间】:2013-05-08 09:18:00
【问题描述】:

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

这行得通,

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();
            }

【问题讨论】:

  • 然后使用"this works"后面的代码。这个问题还不清楚。
  • 不,谢谢,我不能
  • 不应该从button_1的点击处理程序中填充吗?
  • 这就是我想要做的,但它不起作用,先生
  • 如果您可以发布下拉和更新面板标记会很有帮助

标签: c# webforms controls postback


【解决方案1】:

你可以使用

ScriptManager.GetCurrent(Page).IsInAsyncPostBack

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

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

请注意,您应该将UpdatePanel2 的UpdateMode 设为Conditional。填写完DropDownList之后就可以手动调用UpdatePanel2.Update()了。

【讨论】:

  • 谢谢,除了调用 updatepanel2.update() ,:)
猜你喜欢
  • 1970-01-01
  • 2020-06-11
  • 2014-10-14
  • 2022-01-19
  • 2020-06-01
  • 2023-03-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多