晕哦,我刚写的没了。。。。重写
看到很多人用了好多办法写这个功能,我好久没用了,也忘了怎么写的,不过看着挺麻烦的,有个老外重写了RadioButton, 我这个类似重写DataGrid, 其实不管radiobutton还是radiobuttonlist都是让它实现单选并显示在datagird的列中,前者是在单选上写JS控制它的name,后者是在显示上写JS让它显示在DataGrid上,我选了后者,有兴趣的可以把我这个重写DataGrid。有篇类似文章,不过代码不全没看明白:http://blog.csdn.net/j99616/archive/2003/09/02/19247.aspx
有用的朋友可以copy-paste一下,感觉我的比较简单一点,找了半天没找到好用的。。。。。。
aspx上:
<%
...
@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default"
%>
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
<!
DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
>
<
html
xmlns
="http://www.w3.org/1999/xhtml"
>
<
head
runat
="server"
>
<
title
>
Untitled Page
</
title
>
</
head
>
<
body
>
<
form
id
="form1"
runat
="server"
>
<
asp:RadioButtonList
ID
="rbl"
runat
="server"
AutoPostBack
="True"
OnSelectedIndexChanged
="rbl_SelectedIndexChanged"
>
</
asp:RadioButtonList
>
<
asp:DataGrid
ID
="DataGrid1"
runat
="server"
OnItemCreated
="DataGrid1_ItemCreated"
>
</
asp:DataGrid
>
</
form
>
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
<
script
>
...
var dg=document.getElementById("<%=DataGrid1.ClientID %>");
var rb=document.getElementById("<%=rbl.ClientID %>");
for(var i=1;i<=dg.rows.length-1;i++)
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
dg.rows[i].cells[0].innerHTML=rb.rows[i-1].cells[0].innerHTML;
rb.rows[i-1].cells[0].innerHTML="";
}
</
script
>
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
</
body
>
</
html
>
cs文件:
using
System;
using
System.Data;
using
System.Configuration;
using
System.Collections;
using
System.Web;
using
System.Web.Security;
using
System.Web.UI;
using
System.Web.UI.WebControls;
using
System.Web.UI.WebControls.WebParts;
using
System.Web.UI.HtmlControls;
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
public
partial
class
_Default : System.Web.UI.Page
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
...
{
protected void Page_Load(object sender, EventArgs e)
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
bind();
}
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
protected void bind()
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
string[] s =...{ "1", "2", "3" };
DataGrid1.DataSource = s;
DataGrid1.DataBind();
}
protected void DataGrid1_ItemCreated(object sender, DataGridItemEventArgs e)
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
TableCell tc = new TableCell();
tc.Width = Unit.Parse("40");
e.Item.Cells.AddAt(0, tc);
if (e.Item.ItemIndex != -1 && !IsPostBack)
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
ListItem li = new ListItem("", e.Item.ItemIndex.ToString());
rbl.Items.Add(li);
}
}
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
protected void rbl_SelectedIndexChanged(object sender, EventArgs e)
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
Response.Write(rbl.SelectedValue);//这里就是radiobuttionlist选中项的值,目前是行标,你可以在ItemCreated的时候赋其他值
}
}
代码还是用自已写的比较好。。。。。。。。
-------------------------------------------------------------------------
http://www.dreamingcatstudio.com