Repeater中实现单选(repeater radiobutton)
上面是效果图;
我用的是Repeater绑定数据,里面有一个radiobutton的单选;
当我点击单选时下面的总价格就跟着改变啊!;
问题是我怎么响应Repeater中的Radiobutton事件呢; --------------------编程问答-------------------- 首先在Repeater1_ItemCommand获取你选择的id,保存在viewstate中,然后在Repeater1_ItemDataBound事件里面获取这个viewstate,你就可以获取到了! --------------------编程问答-------------------- 你可以在后台写的。。。在前台自己关联。。
<td> <asp:RadioButton ID="rdb1" runat="server" AutoPostBack="true" oncheckedchanged="RadioButton2_CheckedChanged"/>
--------------------编程问答-------------------- --------------------编程问答-------------------- private void rpt_ItemCreated(object sender, System.Web.UI.WebControls.RepeaterItemEventArgs e)
protected void RadioButton2_CheckedChanged(object sender, EventArgs e)
{
}
{
RadioButton rb=(RadioButton)e.Item.FindControl( "rb ");
rb.CheckedChanged+=new EventHandler(rb_CheckedChanged);
}
protected void rb_CheckedChanged(object sender, EventArgs e)
{
RadioButton rb=sendr as RadioButton;
RepeaterItem item =rb.NamingContainer as RepeaterItem;
}
} --------------------编程问答-------------------- --------------------编程问答-------------------- 问题是我怎么响应Repeater中的Radiobutton事件呢;
==========================================
如果后台响应,则:
<asp:RadioButton ID="RadioButton1" runat="server" AutoPostBack="true" oncheckedchanged="RadioButton1_CheckedChanged" />
调用oncheckedchanged事件
如果前台响应,则:
<asp:RadioButton ID="RadioButton1" runat="server" onclick="test(this)" />
调用js的test(this)函数 --------------------编程问答-------------------- 我一般用html控件,js控制。
提交的时候用ajax
--------------------编程问答--------------------
<%@ Page Language="C#" %>--------------------编程问答-------------------- radioButton的实现方法
<%@ Import Namespace="System.Data" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
DataTable CreateDataSource()
{
DataTable dt = new DataTable();
dt.Columns.Add(new DataColumn("id", typeof(Int32)));
dt.Columns.Add(new DataColumn("text", typeof(string)));
DataRow dr;
for (int i = 0; i < 6; i++)
{
dr = dt.NewRow();
dr[0] = i;
dr[1] = "A,B";
dt.Rows.Add(dr);
}
return dt;
}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Repeater1.DataSource = CreateDataSource();
Repeater1.DataBind();
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
</head>
<body>
<form id="form1" runat="server">
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<div><input name='x' value='<%#Eval("id") %>' type="radio" onclick='setValue(this)' /> 测试:<%#Eval("id") %></div>
</ItemTemplate>
</asp:Repeater>
<asp:Label ID="lb" runat="server"></asp:Label>
</form>
<script>
function setValue(o) {
document.getElementById('<%=lb.ClientID %>').innerHTML = o.value;
}
</script>
</body>
</html>
<%@ Page Language="C#" %>--------------------编程问答--------------------
<%@ Import Namespace="System.Data" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
DataTable CreateDataSource()
{
DataTable dt = new DataTable();
dt.Columns.Add(new DataColumn("id", typeof(Int32)));
dt.Columns.Add(new DataColumn("text", typeof(string)));
DataRow dr;
for (int i = 0; i < 6; i++)
{
dr = dt.NewRow();
dr[0] = i;
dr[1] = "A,B";
dt.Rows.Add(dr);
}
return dt;
}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Repeater1.DataSource = CreateDataSource();
Repeater1.DataBind();
}
}
protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
{
RadioButton b = e.Item.FindControl("x") as RadioButton;
b.Attributes.Add("onclick", "setValue(this)");
b.InputAttributes.Add("oldValue", DataBinder.Eval(e.Item.DataItem,"id").ToString());
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
</head>
<body>
<form id="form1" runat="server">
<div id="ou">
<asp:Repeater ID="Repeater1" runat="server" OnItemDataBound="Repeater1_ItemDataBound">
<ItemTemplate>
<div><asp:RadioButton ID="x" runat="server" />测试:<%#Eval("id") %></div>
</ItemTemplate>
</asp:Repeater>
</div>
<asp:Label ID="lb" runat="server"></asp:Label>
</form>
<script>
function setValue(o) {
xs = document.getElementById("ou").getElementsByTagName("input")
for (i = 0; i < xs.length; i++) {
if (xs[i] != o) xs[i].checked = false;
}
document.getElementById('<%=lb.ClientID %>').innerHTML = o.getAttribute("oldValue");
}
</script>
</body>
</html>
补充:.NET技术 , ASP.NET