【问题标题】:Is there a way to execute update of the updatepanel before the other function有没有办法在其他功能之前执行更新面板的更新
【发布时间】:2019-05-23 14:39:47
【问题描述】:

我正在编写一个 asp.net 网站,所以我想在一个下拉列表 textchanged 上更新面板并执行一个函数,该函数从数据库中获取数据并用这些数据更新面板,所有这些都在 js 中,但是我的面板每次更新都很好,但第一次只使用一次相关信息。

在面板更新之前第二次填充数据,所以当它更新时它是空的。

 protected void DropDownList1_TextChanged(object sender, EventArgs e)
        {
            currentPickArea = DropDownList1.SelectedItem.Text;


            UpdatePanel4.Update();


            if (currentPickArea != DROPLIST_PICK_AREA_START_TEXT)
            {

                LoadPickPlacesBySelectedPickArea();
                if (currentPickArea == "QA_Zone")
                {
                    component.processGetLocationByLocationId(currentPickArea);
                }
            }


        }

初始视图

使用正确信息正确更新面板的视图

查看我何时尝试进行第二次更新,因此没有从数据库获取信息,因为面板在数据库更改后更新

我想在更新完成后首先执行更新,或者我知道它会在其余部分之前完成,我让程序继续。

【问题讨论】:

  • 根据所提供的信息很难理解您要完成什么。你在用javascript做什么?你在 C# 中进行数据绑定吗?您需要先进行数据绑定,然后更新面板才能正确显示。
  • 我添加了一些图片来展示预期的效果。不,我需要先进行更新,然后在 js 中进行数据记录。在 js 中,我只是在深灰色中激活了正确的标签,但它仅适用于第一个 textchange。

标签: javascript c# asp.net .net


【解决方案1】:

据我所知,TextChanged 是内部事件,不应使用。将其更改为SelectedIndexChanged,因为这是确定下拉选择何时更改的正确事件。您也可以尝试将下拉列表的AutoPostBack 属性设置为falseEnableViewState 设置为true

【讨论】:

  • 问题不在于 textchanged,而在于 update() 它是在所有其他内容之后生成的。我想先更新。
猜你喜欢
  • 1970-01-01
  • 2018-08-14
  • 2019-07-24
  • 1970-01-01
  • 2013-01-27
  • 1970-01-01
  • 2014-10-11
  • 1970-01-01
  • 2015-06-07
相关资源
最近更新 更多