重新填充updatepanel外部的下拉列表

时间:2011-12-20 01:48:07

标签: asp.net gridview drop-down-menu updatepanel

可能这是对Async回发的无知,所以让我在那里举起一个垒球。

我在更新面板中有三个级联下拉菜单,使用这些可以选择Store-> Department-> Product。第四个DDL位于更新面板之外,使用此选择您的竞争对手。不同的商店与不同的竞争者匹配然后,gridview(也在外面)显示Store-> Department-> Product-> Competitor Price的连接。

首次加载时,以及切换到具有相同竞争对手的其他商店时,此功能正常。但是,如果您将updatepanel DDL更改为不共享所选竞争对手的商店并单击“显示”(导致PostBack),则会收到“无效的回发或回调参数”。如果我删除竞争对手DDL并对gridview的竞争对手进行硬编码,则错误消失,我可以放弃导航。

为什么第四个DDL不会重新填充回发?我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

原因是在后一种情况下更改Store-> Department->产品如果您重新绑定Competitior DropDownlist,那么ListItems将在服务器上更改但不会呈现给客户端,因为它不在内部任何updatepanel,因此Competitior DropDownlist中包含旧值。

当回发发生时,ASP.Net将无法理解这些旧值是如何出现的,并将抛出“Invalid Postback或Callback argument”错误。

解决此问题的最佳方法是将您的下拉列表(和gridview)放在更新面板中。