【问题标题】:DropDownList bug - OnSelectedIndexChanged fires only when DDL is filled in HTMLDropDownList 错误 - OnSelectedIndexChanged 仅在 HTML 中填写 DDL 时触发
【发布时间】:2013-11-30 19:07:46
【问题描述】:

第 1 步。DropDownList 用 Page_Load 上的项目填充。

第 2 步。我选择一个项目并启动回发。在此回发期间页面首先刷新,然后 OnSelectedIndexChanged 触发并运行“ddl1_Select”函数。

如果我用 Aspx (HTML) 文件中的数据静态填充 DropDownList,它可以正常工作。 但是,如果我在代码隐藏中填充它,则 OnSelectedIndexChanged 事件永远不会触发,并且 DDL1_Select 过程不会启动。页面只是回帖并跳过我的程序。为什么此事件不触发以及如何使其工作?

ASPX:

<%@ Page Language="C#" MasterPageFile="~/Master.master" AutoEventWireup="true" 
CodeFile="mypage.aspx.cs" Inherits="mypage" Title="mypage" EnableViewState="False" %>

...

<asp:DropDownList ID="ddl1" runat="server" OnSelectedIndexChanged="ddl1_Select" AutoPostBack="True"/>

ASPX.CS:

protected void Page_Load(object sender, EventArgs e)
{
    ddl1.Items.Add("1");
    ddl1.Items[0].Value = "1";
    ddl1.Items.Add("2");
    ddl1.Items[1].Value = "2";
    ddl1.Items.Add("3");
    ddl1.Items[2].Value = "3";

    if (Session["NewSelection"] != null) // see note 1
    {
        string itemValue = Session["NewSelection"].ToString();
        ddl1.SelectedIndex = ddl1.Items.IndexOf(ddl1.Items.FindByValue(itemValue));
        Session["NewSelection"] = null; // see note 1
    }
}

protected void DDL1_Select(object o, EventArgs e)
{
    Session["NewSelection"] = ddl1.SelectedValue;
    Page.Response.Redirect("mypage.aspx?test=" + Session["NewSelection"].ToString());
}

【问题讨论】:

    标签: asp.net postback html-select autopostback selectedindexchanged


    【解决方案1】:
    protected void Page_Load(object sender, EventArgs e)
    {
      if (!IsPostBack)
    { 
        ddl1.Items.Add("1");
        ddl1.Items[0].Value = "1";
        ddl1.Items.Add("2");
        ddl1.Items[1].Value = "2";
        ddl1.Items.Add("3");
        ddl1.Items[2].Value = "3";
    
        if (Session["NewSelection"] != null) // see note 1
        {
            string itemValue = Session["NewSelection"].ToString();
            ddl1.SelectedIndex = ddl1.Items.IndexOf(ddl1.Items.FindByValue(itemValue));
            Session["NewSelection"] = null; // see note 1
        }
    }
    }
    

    【讨论】:

      猜你喜欢
      • 2014-02-20
      • 2013-09-13
      • 2016-09-05
      • 2016-05-24
      • 1970-01-01
      • 2011-08-17
      • 1970-01-01
      • 1970-01-01
      • 2019-12-06
      相关资源
      最近更新 更多