所以,
我有一个下拉列表,在我的事件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"]); } }更多推荐
发布评论