我得到了一个模板控件(一个转发器),列出了一些文本和其他标记.每个项目都有一个与之关联的单选按钮,用户可以 Select 中继器创建的项目之一.
中继器写入radiobutton,设置默认ASP生成的id和名称.NET命名约定使每个单选按钮成为完整的"组".这意味着所有单选按钮都是相互独立的,不幸的是,这也意味着我可以同时 Select 所有单选按钮.radiobutton有一个聪明的属性"groupname",用于设置一个公共名称,因此它们被分组在一起,因此应该是依赖的(因此我一次只能 Select 一个).问题是——这不起作用——中继器确保id和名称(控制分组)不同.
因为我使用的是中继器(可以是列表视图或任何其他模板化的数据绑定控件),所以不能使用RadioButtonList.那我该怎么办呢?
我知道我以前遇到过这个问题,并且解决了它.我几乎认识所有的ASP.NET程序员一定也有,所以为什么我不能用谷歌搜索并找到解决问题的可靠方法呢?我找到了通过JavaScript强制分组的解决方案(丑!)甚至把单选按钮当作非服务器控件来处理,迫使我用Request.Form[name]
来读取状态.我还try 过在PreRender
事件上覆盖name属性——不幸的是,拥有页面和母版页再次覆盖这个名称以反映完整的id/名称,所以我最终得到了相同的错误结果.
如果你没有比我发布的更好的解决方案,你仍然非常欢迎发布你的 idea ——至少我会知道我的朋友"杰克"关于ASP有多糟糕是正确的.NET有时是;)