【问题标题】:Unable to get SelectedValue from DropDownList无法从 DropDownList 中获取 SelectedValue
【发布时间】:2012-10-26 22:49:22
【问题描述】:

我在 ASP.Net AJAX 更新面板中有两个下拉列表。当用户从第一个下拉列表中选择一个值时,一个下拉列表通过回发填充第二个,这一切都很好。但是,我遇到的问题是我无法从第二个下拉列表中获取 selectedvalue,我的意思是它总是选择第一项而不是实际选择的值。

我已经考虑在页面加载时将填充第二个下拉列表移动到 If Not IsPostBack Then,但是当 AJAX 更新面板执行部分回发时,这会停止填充该下拉列表。

那么,这有什么了不起的?

谢谢

【问题讨论】:

  • 你能发一些代码吗?
  • 你想看代码的哪一部分?在 page_load 上?
  • 您是否要在页面加载中获取价值?如果是这样,您可能不会因为视图状态尚未加载。
  • 抱歉,Noel - 不清楚你想问我什么?
  • 您在哪里获得选定的值,您的 page_load,...?

标签: asp.net asp.net-ajax


【解决方案1】:

如果您要根据第一个下拉列表中选择的值更改第二个下拉列表的值,则应使用第一个下拉列表的 SelectedIndexChanged 事件来设置该值。

您的代码(来自 cmets):

在 Page_Load 我有以下

If (IsPostBack)
{ 
    ddlSite.Datasource = GetSites();
    ddlSite.Databind();
    ddlPlant.DataSource() = GetPlant(ddlSite.SelectedValue);
    ddlPlant.Databind();
}

在页面加载时,ddlSite.SelectedValue 始终为零。

您需要在 ddlSite_SelectedIndexChanged 事件中绑定第二个下拉菜单。

Page Lifecycle question answered

【讨论】:

  • 不,这不是我在这里所做的。整个下拉列表的填充基于第一个的选定值。这不是问题。当我从第二个下拉列表中选择一个值时,当我在我的应用程序的其他位置使用该值时,我将获得列表中的第一项。
  • 请查看我上面的评论。我没有更改第二个下拉列表中的值。我无法从第二个下拉列表中获取我选择的值,因为它只选择了值列表中的第一项
  • SelectedIndexChanged 事件处理程序在哪里?
  • 对,他没有使用它,只是为了获得回发。
  • 为什么我需要在第一个下拉列表中使用 SelectedIndexChanged 事件?这是我感兴趣的第二个下拉列表。
【解决方案2】:

这是一个示例,如果它可以帮助您..它与数据源的级联下拉列表。 http://www.aspdotnet-suresh.com/2011/01/introduction-here-i-will-explain-how-to.html

【讨论】:

    猜你喜欢
    • 2014-05-21
    • 2010-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-23
    • 2015-03-10
    • 1970-01-01
    相关资源
    最近更新 更多