【问题标题】:Dynamic drop down list's selected Index Changed event always return the first value动态下拉列表的选中 Index Changed 事件总是返回第一个值
【发布时间】:2016-03-11 10:36:34
【问题描述】:

所以,

我的事件 page_Load 中有一个由 SQL 查询结果填充的下拉列表。我想做的是在我的下拉列表中的事件 selectedIndexChanges 被触发并将其放入文本框中时获取当前值。

看看我下面的代码。

  • 我的下拉列表定义:<asp:DropDownList ID="ddProfil" runat="server" Width="550" AutoPostBack="True" OnSelectedIndexChanged="ddProfil_SelectedIndexChanged" >

  • 我的页面加载事件:protected void Page_Load(object sender, EventArgs e) { loadDDProfil(Request.QueryString["sitename"]); }

  • 加载下拉列表的函数:

  protected void loadDDProfil(string siteName)
        {

            SqlCommand requete = new SqlCommand();
            requete.Connection = connWeb.ConnectionToDb;

            requete.CommandType = System.Data.CommandType.Text;
            string strReq = "ps_get_all_IndexProfil " + "MRF";
            requete.CommandText = strReq;
            DataTable dtPrf = connWeb.ExecuteQueryDB(requete);

            SqlDataAdapter adapter = new SqlDataAdapter(requete);
            adapter.Fill(dtPrf);

            var dtSource = from p in dtPrf.AsEnumerable()
                           select new {
                               ind = p.Field("IndexProfil"),
                               DisplayedField = String.Format("{0} [ {1} ]", p.Field("NomProfil"), p.Field("Description"))
                           };

            ddProfil.DataSource = dtSource;
            ddProfil.DataValueField = "ind";
            ddProfil.DataTextField = "DisplayedField";
            ddProfil.DataBind();
            ddProfil.SelectedIndexChanged += ddProfil_SelectedIndexChanged;
  • 并且事件 Selected Index Changed:

  public void ddProfil_SelectedIndexChanged(object sender, EventArgs e)
        {

               string s = ddProfil.SelectedValue;
        }

谢谢你的帮助。

【问题讨论】:

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


    【解决方案1】:

    相信你的答案就在这里https://taditdash.wordpress.com/2014/05/21/why-dropdownlist-selectedvalue-not-working-inside-selectedindexchanged-event/

    在您的页面加载事件中尝试添加以下内容:

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            loadDDProfil(Request.QueryString["sitename"]);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-20
      • 2020-05-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多