动态下拉列表的所选索引更改事件始终返回第一个值(Dynamic drop down list's selected Index Changed event always return the

编程入门 行业动态 更新时间:2024-10-25 20:17:43
动态下拉列表的所选索引更改事件始终返回第一个值(Dynamic drop down list's selected Index Changed event always return the first value)

所以,

我有一个下拉列表,在我的事件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 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; 事件选择指数变更: public void ddProfil_SelectedIndexChanged(object sender, EventArgs e) { string s = ddProfil.SelectedValue; }

感谢您的帮助。

So,

I have a drop down list whish fill by a result of SQL query in my event page_Load. What i want to do it's get the current value when the event selectedIndexChanges on my drop down list is fired and put it in a textbox.

Look my code below.

My drop down list definition: <asp:DropDownList ID="ddProfil" runat="server" Width="550" AutoPostBack="True" OnSelectedIndexChanged="ddProfil_SelectedIndexChanged" >

My page load event: protected void Page_Load(object sender, EventArgs e) { loadDDProfil(Request.QueryString["sitename"]); }

Function which load the drop down list:

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; And the event Selected Index Changed: public void ddProfil_SelectedIndexChanged(object sender, EventArgs e) { string s = ddProfil.SelectedValue; }

Thank you, for your help.

最满意答案

我相信你的答案在这里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"]); } }

I believe your answer is here https://taditdash.wordpress.com/2014/05/21/why-dropdownlist-selectedvalue-not-working-inside-selectedindexchanged-event/

On your page load event try adding this:

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

更多推荐

本文发布于:2023-04-29 01:23:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1334584.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:第一个   所选   索引   事件   动态

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!