为DataGrid添加单选按钮
该文章出自:【孟宪会之精彩世界】
http://dotnet.aspx.cc/ShowDetail.aspx?id=18B9552B-6E7E-46DD-BEDA-2436C418BEE8
\<%@ Page Language="C#" AutoEventWireup="True" EnableViewState = "true"%>
\<%@ Import Namespace="System.Data" %>
\<html>
\<script runat="server">
DataTable Cart;
DataView CartView;//创建数据源
ICollection CreateDataSource()
{
DataTable dt = new DataTable();
DataRow dr;
dt.Columns.Add(new DataColumn("IntegerValue", typeof(Int32)));
dt.Columns.Add(new DataColumn("StringValue", typeof(string)));
dt.Columns.Add(new DataColumn("CurrencyValue", typeof(double)));
for (int i = 0; i \< 101; i++)
{
dr = dt.NewRow();
dr[0] = i;
dr[1] = "Item " + i.ToString();
dr[2] = 1.23 * (i+1);
dt.Rows.Add(dr);
}
DataView dv = new DataView(dt);
return dv;
}
void Page_Load(Object sender, EventArgs e)
{ //这段代码是为了通过rd这个隐藏域在页面刷新时记住你的选择
string js = "";
js+="\<script>\r\n";
js+="function ld(){\r\n";
js+="for(i=0;i\<document.getElementsByName('RadioName').length;i++)\r\n";
js+="if(document.getElementsByName('RadioName')[i].value==";
js+="document.getElementById('" + rd.ClientID + "').value) ";
js+="document.getElementsByName('RadioName')[i].checked=true\r\n";
js+="}\r\n";
js+="window.onload=ld\r\n";//将那个客户端脚本设置为window.onload发生时的事件。当Page_Load()执行完毕才触发window.onload事件
js+="\</"+"script>\r\n";
this.RegisterStartupScript("js",js);
if (!IsPostBack)
{
ItemsGrid.DataSource = CreateDataSource();
ItemsGrid.DataBind();
}
}
void Grid_Change(Object sender, DataGridPageChangedEventArgs e)
{
ItemsGrid.CurrentPageIndex = e.NewPageIndex;
ItemsGrid.DataSource = CreateDataSource();
ItemsGrid.DataBind();
}
void btnClick(Object sender, EventArgs e)
{//取得RadioName的值
if(Request.Form["RadioName"] != null)
{
rd.Value = Request.Form["RadioName"].ToString();
Label1.Text = "您所选择的是:\<font color=red>" + Request.Form["RadioName"].ToString() +"\</font>";
}
}
\</script>
\<body>
\<form runat="server" id=MM>
\<input type="hidden" id=rd runat=server/>
\<asp:DataGrid id="ItemsGrid" runat="server"
BorderColor="black" BorderWidth="1"
CellPadding="3" AllowPaging="true"
AutoGenerateColumns="false"
OnPageIndexChanged="Grid_Change">
\<HeaderStyle BackColor="#00aaaa">\</HeaderStyle>
\<PagerStyle Mode="NumericPages">\</PagerStyle>
\<Columns>
\<asp:TemplateColumn>
\<ItemTemplate>//加上单选框列,一定要加Name属性,使其点中表现为一组
\<input type=radio name="RadioName" value='\<%# DataBinder.Eval(Container.DataItem, "IntegerValue")%>'/>
\</ItemTemplate>
\</asp:TemplateColumn>
\<asp:BoundColumn HeaderText="数字列" DataField="IntegerValue"/>
\<asp:BoundColumn HeaderText="字符串列" DataField="StringValue"/>
\<asp:BoundColumn HeaderText="货币列" DataField="CurrencyValue" DataFormatString="{0:c}">
\<ItemStyle HorizontalAlign="right">\</ItemStyle>
\</asp:BoundColumn>
\</Columns>
\</asp:DataGrid>
\<br>
\<asp:Button id="Btn" Text="看你选择的" OnClick="btnClick" runat="server"/>
\<asp:Label id="Label1" Text="" runat="server"/>
\</form>
\</body>
\</html>
浙公网安备 33010602011771号