ASP.NET VS2008 C# - 下拉列表 - 回发

时间:2009-07-30 13:38:47

标签: c# asp.net drop-down-menu postback

如何在没有autopostback = true的情况下使用下拉列表。

根据从客户端选择的值,不会更改服务器上的值。正如我已经说过的那样,我不希望每次下拉,我都有自动回复会触发回发。

4 个答案:

答案 0 :(得分:2)

它将保存在视图状态中,因此当您最终回发时,该值将是正确的,如果您真的急于在没有回发的情况下获取当前值,则javascript将是执行此操作的方法。

答案 1 :(得分:2)

任何时候我都失去了下拉菜单的价值,这是因为我在处理价值变化之前搞砸了并重新填充下拉。对我来说,我需要做一些特殊的事情,例如为Javascript添加项目属性等等。这是需要在每个页面加载时添加的数据(也就是下拉列表中不存在的数据)每个项目的名称和价值)。在这些情况下,我已经在加载时完成了这项工作,然后我尝试在页面生命周期和DOH中稍后检索该值!

以下是页面生命周期:

http://msdn.microsoft.com/en-us/library/ms178472.aspx

正在发生的甜甜圈。您可能只是在处理用于获取值的任何回发事件之前重新加载项目。如果您正在执行此操作并且无法绕过此工作流程,只需将所选索引保存在填充下拉列表的逻辑的开头,然后在完成后使用该值设置下拉列表的选定索引。

答案 2 :(得分:1)

最糟糕的情况是,您可以直接从请求对象中获取值:

string selectedID = Request[DropdownControl.UniqueID];

答案 3 :(得分:0)

您应确保在初始页面加载期间仅填充带有选项的选择框,而不是在回发期间再次填充

if (!this.Page.IsPostBack) {
  //fill select box here
}