您的位置:首页 > 其它

为DataGrid添加RadioButton按钮,实现单选效果

2007-06-13 13:53 633 查看
由于ASP.NET中的RadioButton控件在DataGrid 模板列中不能达到分组的效果,但是基于ASP.NET良好的编程性的前提下,要达到这个效果并不是很难.以前有见过一些朋友采用HTML控件可以达到这一效果,这里有我采用ASP.NET自带的RadioButton控件来编写的效果,虽然生成出来的JS不怎么漂亮,但也有一定的好处.
在ASPX页面中加入以下代码:

<asp:datagrid class="grid" id="DataGrid1" runat="server" Width="720px" AllowSorting="True" AllowPaging="True"
PageSize="3" AutoGenerateColumns="False" BackColor="White">
<Columns>
<asp:TemplateColumn>
<ItemTemplate>
<asp:RadioButton ID="radGroup" runat="server"></asp:RadioButton>
</ItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn DataField="CUSTNO" HeaderText="客户"></asp:BoundColumn>
<asp:BoundColumn DataField="SBNO" HeaderText="单号"></asp:BoundColumn>
<asp:BoundColumn DataField="ORDERNO" HeaderText="订单号码"></asp:BoundColumn>
<asp:BoundColumn DataField="LOTNO" HeaderText="批号"></asp:BoundColumn>
<asp:BoundColumn DataField="GETPCS" HeaderText="匹数">
<ItemStyle HorizontalAlign="Right"></ItemStyle>
</asp:BoundColumn>
<asp:BoundColumn DataField="GETKG" HeaderText="数量">
<ItemStyle HorizontalAlign="Right"></ItemStyle>
</asp:BoundColumn>

</Columns>
<PagerStyle Mode="NumericPages"></PagerStyle>
</asp:datagrid>
在CS代码中加入以下代码段:

private void DataGrid1_PreRender(object sender, System.EventArgs e)

//得到其它RadioButton的索引
private string getRadioId(string currentClientId,ArrayList ary,int index)
{
String ClientIdList="";

foreach(object obj in ary)
{
if(obj.ToString()!=currentClientId)
{
ClientIdList+="document.all('"+obj.ToString()+"').checked=false;";
}
}
//其中采用(Hidden)hidIndex保存index(选中项的索引)
return ClientIdList+ "document.all('" + this.hidIndex.ClientID + "').value=" + index + ";";
}

以上示例供学习ASP.NET的朋友参考.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: