动态填充DropDownList不会在回发ASP.net上保留值c#
编辑3:固定!
我终于找到了问题所在. 谢谢大家的答案! 首先,请原谅我,如果我的英语不完美,但我会尽量做到最精确. 我有一个表格,用于“创建新的个人资料”.在这种形式我有一些DropDownLists和TextBoxes,我的问题是关于DropDownLists. 4 DropDown在我的页面上. 让我们关注最后一个DropDown: 第一个DropDown根据其值动态填充第二个DropDown. 看到这张图: 第一个ddl: <asp:DropDownList ID="ddlTypePN" runat="server" DataSourceID="SqlTypePN" EnableViewState="true" DataTextField="libelle" DataValueField="valeur" AutoPostBack="true" OnSelectedIndexChanged="ddlTypePN_SelectedIndexChanged" OnDataBound="ddlTypePN_DataBound" > </asp:DropDownList> 第二个ddl: <asp:DropDownList runat="server" ID="ddlFctPN" AppendDataBoundItems="false" OnDataBound="ddlFctPN_DataBound" > </asp:DropDownList> 填充方法: void populateDdl() { string val = "fct"+ddlTypePN.SelectedValue.ToString().Trim(); // Used for SELECT SqlConnection sqlConn = new SqlConnection(ConfigurationManager.ConnectionStrings["My_DB"].ConnectionString); ddlFctPN.Items.Clear(); DataTable subjects = new DataTable(); try { SqlDataAdapter adapter = new SqlDataAdapter("My SELECT",sqlConn); adapter.Fill(subjects); ddlFctPN.DataSource = subjects; ddlFctPN.DataTextField = "libelle"; ddlFctPN.DataValueField = "valeur"; ddlFctPN.DataBind(); } catch (Exception ex) { lblErr.Text = ex.Message; } ddlFctPN.Items.Insert(0,new ListItem("Sélectionnez...","null")); } 当我在第二个ddl中选择一个项目并且发生PostBack时(即使它来自我之前提到过的其他下拉列表),SelectedValue成为第一个值. ( “Selectionnez ……”) 似乎我的第二个DropDown在每个回发都受到限制,即使它不是因为我的第一个DropDown的SelectedIndexChanged. 当我单击“提交”按钮时,它会在我的数据库中注册一个空白值. 我错过了什么? ?编辑1: 这是PageLoad: protected void Page_Load(object sender,EventArgs e) { if (!IsPostBack) { ddlTypeProf.DataBind(); // don't care ddlSsoSrc.DataBind(); // don't care ddlTypePN.DataBind(); // The ddl that populate my 2nd ddl } } 这是第一个ddl SelectedIndexChanged: protected void ddlTypePN_SelectedIndexChanged(object sender,EventArgs e) { string type = ddlTypePN.SelectedValue.ToString().Trim(); // if PNT if (type.ToUpper().Trim().Equals("PNT")) { ddlFctPN.Enabled = true; ddlTypeAv.Enabled = true; rfvTypeAv.Enabled = true; populateDdl(); } else if (type.ToUpper().Trim().Equals("PNC")) { ddlFctPN.Enabled = true; ddlTypeAv.Enabled = false; rfvTypeAv.Enabled = false; populateDdl(); } } ?编辑2: 见下图: http://image.noelshack.com/fichiers/2013/22/1369830738-help2.png 你可以看到我的第二个ddl(“Fonction”)被正确填充但是当我点击提交按钮时:该值变为空值(“Sélectionnez…”),因此我的RequiredFieldValidator使页面无效! 解决方法if(!IsPostBack) { populateDdl(); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc-3 – 您可以编辑CSHTML而无需再次构建
- asp.net – Razor查看到Word文档或PDF
- Response.Redirect在ASP.NET中将数据POST到另一个URL
- asp.net-mvc – 在ASP.NET MVC中保护NullReferenceExceptio
- asp.net – 为什么使用隐藏的字段?
- IIS中的 Asp.Net Core 和 dotnet watch
- asp.net-mvc – 在MVC视图中,如果在表单标记中没有指定,则调
- asp.net-mvc – 从DataAnnotations MVC 3向字段添加CSS类
- asp-classic – 使用经典ASP区分测试和生产的最佳方式
- ASP.NET Core / MVC 6 ViewModel中的依赖注入(DI)
- asp.net – 在页面刷新时再次触发GridView_RowCo
- ASP.Net:为什么我的按钮的点击/命令事件没有在转
- asp.net-mvc – ASP.net MVC 4中的条件@ Scripts
- asp.net – 如何从SQL表中的列获取XML数据?
- ASP.NET MVC和Angularjs与ASP.NET MVC和Reactjs
- asp.net-mvc – ASP.NET MVC – 仅经过身份验证的
- asp.net-mvc – 跟踪登录用户
- 全面理解 ASP.NET Core 依赖注入
- asp.net-mvc – ASP MVC Preview 5和IIS 6 Windo
- 在ASP.NET中上传文件时运行病毒扫描