Group RadioButtons控件介绍

解决在DataGrid等里面使用不了group RadioButtons问题的控件介绍

通常我们想在DataGrid,DataList, Repeater等里面做单选的效果,比如我在做考核系统时就想在每条题目后面跟着几个选择的答案和几个单选框,但是...其实是做不了的,即使你名了GroupName...

例子:
<!-- Countries for selection -->
<asp:DataGrid id="countriesGrid" runat="server" 
DataKeyField
="ID" AutoGenerateColumns="False">
<Columns>
<asp:TemplateColumn>
<ItemTemplate>
<!-- 
Draw attention at this control. 
We would like to use radio-buttons to
select single country from the list.
-->
<asp:RadioButton id="selectRadioButton" 
runat
="server" GroupName="country" />
</ItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn DataField="Country" HeaderText="Country" 
HeaderStyle-Font-Bold
="True" />
<asp:BoundColumn DataField="Capital" HeaderText="Capital" 
HeaderStyle-Font-Bold
="True" />
</Columns>
</asp:DataGrid>

运行的效果是:你按了一个,还可以按第二个,第三个...呵呵,我们来看看它的源代码:
<!-- Countries for selection -->
<table cellspacing="0" rules="all" border="1" id="countriesGrid" 
style
="border-collapse:collapse;">
<tr>
<td> </td>
<td style="font-weight:bold;">Country</td>
<td style="font-weight:bold;">Capital</td>
</tr>
<tr>
<td><input id="countriesGrid__ctl2_selectRadioButton" 
type
="radio" <B>name="countriesGrid:_ctl2:country"</B> 
value="selectRadioButton" />
</td>
<td>USA</td>
<td>Washington</td>
</tr>
<tr>
<td><input id="countriesGrid__ctl3_selectRadioButton" 
type
="radio" <B>name="countriesGrid:_ctl3:country"</B> 
value="selectRadioButton" />
</td>
<td>Canada</td>
<td>Ottawa</td>
</tr>
<!-- etc. -->

你可以看到"name"的值是不同的,当然你就不可能实现单选的效果.

有人为了解决这个问题,写了个控件,可以解决这个问题...

拉出控件后,html的内容:
<%@ Register TagPrefix="vs" Namespace="Vladsm.Web.UI.WebControls" 
Assembly
="GroupRadioButton" 
%>
<!-- Countries for selection -->
<asp:DataGrid id="countriesGrid" runat="server" DataKeyField="ID" 
AutoGenerateColumns
="False">
<Columns>
<asp:TemplateColumn>
<ItemTemplate>
<B><vs:GroupRadioButton id="selectRadioButton" 
runat
="server" GroupName="country" /></B>
</ItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn DataField="Country" HeaderText="Country" 
HeaderStyle-Font-Bold
="True" />
<asp:BoundColumn DataField="Capital" HeaderText="Capital" 
HeaderStyle-Font-Bold
="True" />
</Columns>
</asp:DataGrid>

Group RadioButtons控件模版下载:http://www.my35.net/forum/images/upfile/20041017214320.zip
Group RadioButtons控件源码下载:http://www.my35.net/forum/images/upfile/20041017214338.zip

posted on 2005-03-12 23:16  黎宇  阅读(418)  评论(0编辑  收藏  举报

导航