如何在Repeater控件中实现RaidoButton单选
2013-04-02 13:48
162 查看
在Asp.Net的Repeater控件中,由于内部控件是动态生成的,那么为了保持各控件的独立不相互混淆,Repeater会自动为内部的各种服务器端控件生成唯一的ID。然而很不幸,RaidoButton的Name属性也不能幸免,而我们知道RaidoButton是通过Name属性进行归组的,也就是说在Repeater控件中的RadioButton失去了最原始的作用——单选。
那么如果我们要实现这个单选应该如何做呢?进过一番百度,我发现网上说可以重新编译Repeater控件,但是这个方法想想就觉得不切实际。还有一种就是通过Javascript把RaidoButton的Name属性强制改为一样的,但这种虽说是可以实现,但是在后台却获取不到他的Checked是否为True了,因而这种方法是外强中干呐。
在一番思考后,终于有了收获,最终的解决方法是:客户端RadioButton + jquery对每次RadioButton的选中事件进行响应 + 在响应事件中将RadioButton的Value属性传值到Hidden服务器端控件
(1)实现RaidoButton单选。
在这里我们使用客户端版的Radio控件,既不包含“runat = server”属性,这样Repeater只是简单地将控件复制到各列。这样我就能保证控件的Name属性一致。
(3)通过JQuery对每次RaidoButton的点击事件进行响应。
(4)后台通过this.HdnSelectedValues.Value取值
进过上面四步,我就就实现了在radio控件的单选和值的传递。
最终效果
那么如果我们要实现这个单选应该如何做呢?进过一番百度,我发现网上说可以重新编译Repeater控件,但是这个方法想想就觉得不切实际。还有一种就是通过Javascript把RaidoButton的Name属性强制改为一样的,但这种虽说是可以实现,但是在后台却获取不到他的Checked是否为True了,因而这种方法是外强中干呐。
在一番思考后,终于有了收获,最终的解决方法是:客户端RadioButton + jquery对每次RadioButton的选中事件进行响应 + 在响应事件中将RadioButton的Value属性传值到Hidden服务器端控件
(1)实现RaidoButton单选。
在这里我们使用客户端版的Radio控件,既不包含“runat = server”属性,这样Repeater只是简单地将控件复制到各列。这样我就能保证控件的Name属性一致。
<input name="sel_addr" type="radio" class="radio" value="<%#((BookShop.Model.Orderaddress)Container.DataItem).Id %>" />(2)在Repeater控件外插入Hidden服务器端控件
<asp:HiddenField ID="HdnSelectedValues" runat="server" />
(3)通过JQuery对每次RaidoButton的点击事件进行响应。
$("input[type=radio]").live("click", function () { $(".radio").each(function () { if ($(this).attr("checked") == true) { value = $(this).val(); } $("#<%=HdnSelectedValues.ClientID%>").val(value); }) })
(4)后台通过this.HdnSelectedValues.Value取值
this.HdnSelectedValues.Value
进过上面四步,我就就实现了在radio控件的单选和值的传递。
最终效果
相关文章推荐
- repeater控件如何实现分页效果
- 读书笔记:《Aspx开发200问》——如何实现Repeater控件的分页
- asp.net中Repeater控件里Radiobutton如何实现单选
- 使用masterpage的情况下如何使用js实现repeater控件里的checkbox全选
- 基于DevExpress开发的GridView如何实现一列显示不同的控件类型
- Repeater控件使用实现(含删除,分页功能)
- ASP.NET巧妙利用repeater控件和checkBox控件实现批量操作
- QT如何实现控件倒影特效
- [网络收集]Repeater控件实现数据绑定并分页
- 纯JS脚本如何实现日历控件
- repeater控件实现分页
- 如何实现控件从IDE拖放到窗体上的效果?
- 控件(九)——Repeater控件实现分页
- 如何实现由列表控件控制的属性表
- Repeater控件不用存储过程实现分页,DataList同理
- 如何用C#实现控件的自由拖动
- 如何在DataGrid 控件中实现自定义分页操作
- Jquery Ajax 如何实现动态加载Repeater 或者 DataList
- DEV控件及如何实现一些功能的应用(附带PPT讲解)
- winForm中如何实现Webbrowser控件加载html页面?