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-4 – MVC 4中的ClientValidationEnabled和Unob
- asp.net – 在IIS中有类似cron作业的东西吗?
- 最佳实践ASP.NET成员资格:同一数据存储区中的用户表?
- asp.net – GridView中的TemplateField标题
- asp.net-mvc – MVC4中的ELMAH和API控制器不记录错误
- asp.net-mvc – Ninject.MVC3,将DependencyResolver传递给服
- 单页应用认证
- asp.net – 为什么当试图保存更改时,GridView行“null”的D
- ASP.NET-MVC(IIS6)高流量时出错:指定的强制转换无效
- asp.net – 应用程序尝试执行安全策略不允许的操作
- asp.net-mvc-3 – ActionButton而不是ActionLink
- 清除ASP.net窗体中的所有字段
- asp.net-mvc – ASP.NET MVC – 在客户端缓存页面
- asp.net-core – 从显式类型的ASP.NET Core API控
- asp.net-mvc – Ninject如何在ASP.NET MVC中创建
- asp.net-mvc – 为什么必须将LESS文件设置为Buil
- asp.net-mvc – 具有多个参数的ActionLink
- 无法显示ASP.Net UpdateProgress
- asp.net-mvc – 在图层之间复制模型
- asp.net – GetExternalLoginInfoAsync()loginIn
