【问题标题】:ASP.Net DropDownList selected valueASP.Net DropDownList 选定值
【发布时间】:2011-08-05 14:17:03
【问题描述】:

我感觉我错过了一些非常明显的东西,我无法捕获我的 DropDownList 的选定值;该值重新启动列表中的第一项。我已将 DropListList autopostback 属性设置为 true。我有一个 SelectedIndexChangedEvent 粘贴在下面。这不在母版页上。

protected void ddlRestCity_SelectedIndexChanged(object sender, EventArgs e)
{
    if (IsPostBack)
    {
        r_city = ddlRestCity.SelectedValue.ToString();
    }
}

这里是 DropDownList 控件:

<asp:DropDownList ID="ddlRestCity" runat="server" 
        Width="100px" AutoPostBack="True" 
        onselectedindexchanged="ddlRestCity_SelectedIndexChanged">
</asp:DropDownList>

提前感谢您的帮助!

【问题讨论】:

  • 您的DataBind() 电话在哪里?您在通话前检查!IsPostBack 吗?
  • 你们都是写作高手,基本都懂
  • 感谢我们所有人的-1。我将删除我的答案。你至少可以解释为什么
  • 您可以随心所欲地投票。如果您决定在一页中对所有答案投反对票,因为也许您不同意他们,您可以但至少留下评论。它:-)

标签: asp.net drop-down-menu selectedvalue


【解决方案1】:

我的即兴猜测是,您可能会在回帖中重新填充列表,这会导致所选索引被重置。

【讨论】:

    【解决方案2】:

    您的DataBind() 电话在哪里?您在通话前检查!IsPostBack 吗?例如:

    protected void Page_Load(object sender, EventArgs e) {
        if (!IsPostBack) {
            ddlRestCity.DataSource = ...;
            ddlRestCity.DataBind();
        }
    }
    

    解释:如果您不在DataBind() 之前检查!IsPostBack,列表将在SelectedIndexChanged 被触发之前重新填充(因为@987654327 @ 触发 before 子事件,例如 SelectedIndexChanged)。当SelectedIndexChanged 被触发时,“选定项”现在是新填充列表中的第一项。

    【讨论】:

      【解决方案3】:

      什么是 r_city?

      如果是文本框,那么你需要做类似r_city.text = ...的操作

      另外,您可以考虑删除回发支票。通常,这在 page.onload 事件中最有用,通常,您正在检查 if NOT ispostback...

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-03-30
        • 1970-01-01
        • 2016-04-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-02-15
        相关资源
        最近更新 更多