Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net Ajaxcontrol Toolkit CascadingDropdownList填充事件故障_Asp.net_.net 3.5_Asp.net Ajax_Ajaxcontroltoolkit - Fatal编程技术网

Asp.net Ajaxcontrol Toolkit CascadingDropdownList填充事件故障

Asp.net Ajaxcontrol Toolkit CascadingDropdownList填充事件故障,asp.net,.net-3.5,asp.net-ajax,ajaxcontroltoolkit,Asp.net,.net 3.5,Asp.net Ajax,Ajaxcontroltoolkit,我有2个CascadingDropdownList,应用程序和角色。应用程序更改时,将填充角色。 当应用程序或角色更改时,我使用用户列表部分呈现UpdatePanel 问题是,当应用程序更改POST中发送的角色值以呈现UpdatePanel时,该角色值是填充角色之前的旧角色值,即新选定应用程序的角色列表 所以,我尝试的解决方案是在填充角色后进行部分渲染。我从UpdatePanel中删除应用程序触发器,并使用角色CascadeDropDownList中的populated事件手动启动回发 这样,当

我有2个CascadingDropdownList,应用程序和角色。应用程序更改时,将填充角色。 当应用程序或角色更改时,我使用用户列表部分呈现
UpdatePanel

问题是,当应用程序更改
POST
中发送的角色值以呈现
UpdatePanel
时,该角色值是填充角色之前的旧角色值,即新选定应用程序的角色列表

所以,我尝试的解决方案是在填充角色后进行部分渲染。我从
UpdatePanel
中删除应用程序触发器,并使用角色
CascadeDropDownList
中的
populated
事件手动启动回发

这样,当应用程序发生更改时,角色将被填充,并且(由于该事件)
UpdatePanel
将被更新。当角色更改时,
UpdatePanel
中的基本触发器将进行更新

代码隐藏:

ToolkitScriptManager.RegisterStartupScript(Me, Me.GetType,"wireEvents","Sys.Application.add_load(addPopulatedEvent);", True)
HTML:


函数updatePanel()
函数addPopulatedEvent(sender,args){if(!args.get_isPartialLoad()){$find(“”).add_populated(updatePanel);}
另一个问题出现了。我可以在firebug网络中看到部分渲染
POST
是如何在填充角色
POST
的同时启动的,有时甚至在之前。并且仍然可以在部分呈现
POST
中看到角色的旧“预填充”值。简而言之:
CascadingDropdownList填充事件
在填充CascadingDropdownList后不会上升。这很奇怪,因为事件动词是过去式的,而且还存在一个填充事件的
。所以一切都告诉我,在角色被新数据填充后,
填充的事件
应该上升。但不是

2个问题:

  • 我在CascadingDropDownList事件上做错了什么吗
  • 如果我的解决方案永远行不通,你能给我指出另一个可行的解决方案吗

  • 这真是一只虫子。在v15.1.3版本中修复。这是问题报告

     <script>
    
       function updatePanel() {  __doPostBack('<%=UpdatePanel1.ClientID %>', null); }
       function addPopulatedEvent(sender, args) {if (!args.get_isPartialLoad()) { $find('<%=cmbRoles_CascadingDropDown.ClientID %>').add_populated(updatePanel); }  }
    
      </script>