asp.net – DropDownList烦恼:相同的值不会触发事件
我已经填充了一个具有不同文本属性的下拉列表控件,但每个文本属性都具有相同的值(文本属性为A,值属性为blah,文本属性为B,值属性为blahblah等…)
ASP.net仅在回发时检查值属性,因为所有值都相同(for 解决方法
听起来你正在处理错误的事件.试试
SelectedIndexChanged.
确保您还将AutoPostBack属性设置为True. 解决 好的,所以我开始挖掘这个因为我很好奇:) 使用非唯一值进行数据绑定时存在“问题”. 所以,首先,我公开道歉说不然. 复制: ASPX <asp:DropDownList ID="myDDL" runat="server" AutoPostBack="True"> </asp:DropDownList> <asp:Label ID="lblSelItem" runat="server"Text="Currently Selected Item: 0"></asp:Label> <asp:Label ID="lblSelVal" runat="server" Text="Currently Selected Value: X"></asp:Label> 代码隐藏 List<string> MyData() { List<string> rtn = new List<string>(); rtn.Add("I am the same value!"); rtn.Add("I am the same value!"); rtn.Add("I am the same value!"); rtn.Add("I am the same value!2"); return rtn; } protected void Page_Init() { if (!Page.IsPostBack) { // Load the Data for the DDL. myDDL.DataSource = MyData(); myDDL.DataBind(); } } protected void Page_Load(object sender,EventArgs e) { // Display the Currently Selected Item/Value. lblSelItem.Text = "Currently Selected Item: " + myDDL.SelectedIndex.ToString(); lblSelVal.Text = "Currently Selected Value: " + myDDL.SelectedValue; } 运行,更改DropDownList中的值.请注意,不会发生PostBack. 在查看Source时,我意识到我们需要为< option>显式设置“value”属性.服务器控件生成的元素,这使我做了类似的事情: 新代码背后 Dictionary<string,string> MyTwoColData() { Dictionary<string,string> rtn = new Dictionary<string,string>(); rtn.Add("1","I am the same value!"); rtn.Add("2","I am the same value!"); rtn.Add("3","I am the same value!"); return rtn; } protected void Page_Init() { if (!Page.IsPostBack) { // Load the Data for the DDL. Dictionary<string,string> data = MyTwoColData(); foreach (KeyValuePair<string,string> pair in MyTwoColData()) { myDDL.Items.Add(new ListItem(pair.Value,pair.Key)); } myDDL.DataBind(); } } 这将explcitly设置为“1”,“2”,“3”等使它们唯一,同时仍然在列表中显示正确的数据. 显然,您可以将其更改为使用单列列表,但只是运行for循环并使用i或其他值. 至于DataSet的良好解决方法,不确定. 实际上,我们是否会向用户提供具有完全相同值的选项列表? 我个人认为不是,这可能是为什么这个“问题”没有得到解决:) 请享用! PS: 哦,我还应该补充一点,如果你想在“修复”中使用文本值,那么将它改为SelectedItem而不是SelectedValue. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – ASP.NET MVC:将复杂类型绑定到选择
- asp.net – <%#Eval(“State”)%>或<%#DataBin
- asp-classic – 如何使用经典asp中的vbscript下载文件
- asp.net – 使用thinktecture IdentityServer v2进行单点登
- asp.net – 在MS Access中双重插入?
- asp.net-mvc – 如何让MVC POST返回上一页?
- asp.net-mvc – HandleErrorAttribute无法正常工作
- asp.net – 如何禁用通过IIS提供的单页面应用程序HTML文件的
- asp.net-mvc – 使用URL重写时Url.Action不正确
- asp.net-mvc – 为什么这两个API方法会产生冲突
- 捕获从ASP.NET生成的HTML
- asp.net-mvc – 不使用DropDownList和嵌套对象的
- asp.net-mvc – 使用编辑器下拉列表值更新Kendo网
- asp.net – 尝试设置此报告中未定义的报告参数“
- asp.net-mvc-3 – 在MVC3中设置所选选项
- asp.net – 在RedirectToAction调用中传播QueryS
- asp.net-core – 在强类型视图中呈现ViewCompone
- asp.net – 选择性地将CSS应用于gridview中的一行
- entity-framework – 如何告诉UserManager.FindB
- ASP.NET ASCX使用实例变量