Repeater中实现单选(repeater radiobutton)
上面是效果图;
<asp:Repeater runat="server" ID="RepFamList"
onitemdatabound="RepFamList_ItemDataBound"><ItemTemplate>
<tr class="tr-bg1">
<td align="center">
<label>
<asp:RadioButton ID="RadioButton1" runat="server" /> </label>
</td>
<td>
<%#Eval("PaintSize") %>
</td>
<td>
<%#Eval("Code") %>
</td>
<td>
<%= ccl.GetCurrencyChangeSign() %><%# ccl.GetCurrencyChangeRate(Eval("Retail").ToString()) %>
</td>
<td>
<%= ccl.GetCurrencyChangeSign() %><%# ccl.GetCurrencyChangeRate(Eval("NowSale").ToString()) %>
</td>
</tr>
</ItemTemplate></asp:Repeater>
我用的是Repeater绑定数据,里面有一个radiobutton的单选;
当我点击单选时下面的总价格就跟着改变啊!;
问题是我怎么响应Repeater中的Radiobutton事件呢;而且发现这么加Radiobutton每行都可以选的!就不是我想要的只能有一行被选中的 --------------------编程问答-------------------- 单选框添加一个属性GroupName="sel",比如这样,说明都是一个组的,只能有一个可以选的了。
--------------------编程问答--------------------
<asp:RadioButton ID="RadioButton1" runat="server" GroupName="sel"/>
-----全部手写
<table>
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<tr>
<td><%#Eval("Areaname") %></td>
<td> <asp:RadioButton ID="rdb1" runat="server" AutoPostBack="true" oncheckedchanged="RadioButton2_CheckedChanged"/>
</td>
</tr>
</ItemTemplate>
</asp:Repeater>
</table>
protected void RadioButton2_CheckedChanged(object sender, EventArgs e)
{
RadioButton rdb = sender as RadioButton;
RepeaterItem item = rdb.Parent as RepeaterItem;
int count = Repeater1.Items.Count;
for (int i = 0; i < count; i++)
{
RadioButton rdb1 = Repeater1.Items[i].FindControl("rdb1") as RadioButton;
if (i != item.ItemIndex)
{
rdb1.Checked = false;
}
}
}
--------------------编程问答-------------------- 貌似答案已有。 --------------------编程问答-------------------- 这样绑定想实现单选就在后台写代码。。如上。。
要不
<asp:RadioButton ID="RadioButton1" runat="server" GroupName="sel"/>
换成
<input type="radio" id="rdb" name="aa"/> --------------------编程问答-------------------- 在 RadioButton 的Onclick事件里面显示内容 --------------------编程问答-------------------- onclick中通过JS修改数据
或protected void RadioButton_CheckedChanged(object sender, EventArgs e)
{
RadioButton rb=sendr as RadioButton;
RepeaterItem item =rb.NamingContainer as RepeaterItem;
} --------------------编程问答-------------------- 如果是每一个单选按钮都可以被选中,那是因为你没有为它们设置共同的分组名称。给RadioButton控件添加GroupName属性
当选中时触发的动作可以在CheckedChanged事件中处理 --------------------编程问答-------------------- <asp:RadioButton ID="RadioButton1" runat="server" GroupName="Radio1"/>
我设的!照样每一行都可以选取的;这个要怎么办呢 --------------------编程问答--------------------
要用服务器控件的话就在后台checkedchanged事件中加方法如2楼。。否则就换成<input type="radio" id="rdb" name="aa"/> --------------------编程问答--------------------
+1 --------------------编程问答-------------------- [color=#FF0000]单选框添加一个属性GroupName 这种方式是行不通的;根本起不到效果的一样可以多选的;[/color] --------------------编程问答--------------------
LZ都不看其他答案的!~...? --------------------编程问答-------------------- <input name="x" type=radio value="1">
<input name="x" type=radio value="2">
<input name="x" type=radio value="3">
...
就可以了 --------------------编程问答-------------------- --------------------编程问答-------------------- <asp:Repeater ID="repInfo" runat="server">
<ItemTemplate>
<asp:Label ID="lblName" runat="server" Text='<%# Eval("username") %>'></asp:Label>
<input id='rdo<%# Eval("id") %>' type="radio" name="rdo"/>
</ItemTemplate>
</asp:Repeater> --------------------编程问答-------------------- 上面的很多方法都可行吧
补充:.NET技术 , ASP.NET