实现Repeater控件的记录单选

时间:2022-11-06 11:39:19

有朋友问及,在Repeater控件中第一列放置一个RadioButton,实现对记录的单选。

下面Insus.NET想举个例子来实现与说明。

为Repeater控件准备数据:
实现Repeater控件的记录单选

在ASPX网页上,写好Repeater控件:
实现Repeater控件的记录单选

再去ASPX.cs代码页中去实现把数据绑定给Repeater控件:
实现Repeater控件的记录单选

现在我们试运行一下,看看效果:
实现Repeater控件的记录单选

数据是显示出来了,但是单选功能有问题,实现不了单选。是啥原因?打开运行时的html来看看:
实现Repeater控件的记录单选

看到否,由于每一行的RadioButton均会产生各自的name。因此只能各自为政了。
现在我们需要想办法把这个name的属性值均改为一样就行了。

因此,Insus.NET想到了重写ASPX的html。需要运用到正则,把这个属性值替换为相同的即可。
有关正则,Insus.NET是弱项,请教了孔伟朋友,他给到的正则如下:

(?i)(?<=<input(?!((?!(value|name)).)+>)[^<>]+)name=[^>]+value=""RadioButton1""

在ASPX.cs写重写方法:
实现Repeater控件的记录单选

再次运行并查看html源代码:
实现Repeater控件的记录单选

此时,已经看到name的属性的值均相同了。运行效果可以想象得到,正常了:
实现Repeater控件的记录单选