有朋友问及,在Repeater控件中第一列放置一个RadioButton,实现对记录的单选。
下面Insus.NET想举个例子来实现与说明。
为Repeater控件准备数据:
在ASPX网页上,写好Repeater控件:
再去ASPX.cs代码页中去实现把数据绑定给Repeater控件:
现在我们试运行一下,看看效果:
数据是显示出来了,但是单选功能有问题,实现不了单选。是啥原因?打开运行时的html来看看:
看到否,由于每一行的RadioButton均会产生各自的name。因此只能各自为政了。
现在我们需要想办法把这个name的属性值均改为一样就行了。
因此,Insus.NET想到了重写ASPX的html。需要运用到正则,把这个属性值替换为相同的即可。
有关正则,Insus.NET是弱项,请教了孔伟朋友,他给到的正则如下:
(?i)(?<=<input(?!((?!(value|name)).)+>)[^<>]+)name=[^>]+value=""RadioButton1""
在ASPX.cs写重写方法:
再次运行并查看html源代码:
此时,已经看到name的属性的值均相同了。运行效果可以想象得到,正常了: