我有一个转发器控件,在里面我有两个选择性别(男性,女性)的单选按钮。 保存页面时,我将所选值“M”或“F”保存到数据中。当我加载页面时,我希望根据保存的内容选择单选按钮。
所以,在这种情况下,我的转发器有(Container.DataItem).Sex,它等于'M'或'F'。如何在我的单选按钮中使用此数据来选择适当的值?
这是我想要使用的功能(但它不存在):
<asp:RadioButtonList runat="server" SelectedValue='<%# ((Dependent)(Container.DataItem)).Sex %>' />
请注意,我无法操作代码隐藏中的单选按钮,因为我无法访问各个转发器项目。
答案 0 :(得分:1)
你需要做的是使用2 RadioButton
控制(1对女性,1对男性)。
然后指定GroupName
以便在选择另一个时取消选择一个。
我们说GroupName="Sex"
。
然后根据DataItem
:
<asp:RadioButton ID="radioMale" runat="server" GroupName="Sex" Checked="<%# ((Dependent)(Container.DataItem)).Sex == 'M' %>" />
<asp:RadioButton ID="radioFemale" runat="server" GroupName="Sex" Checked="<%# ((Dependent)(Container.DataItem)).Sex == 'F' %>" />
答案 1 :(得分:1)
在这里查看这个答案Setting selected value on a dropdownlist from codebehind in a repeater in a formview,您应该可以执行以下操作:
<asp:RadioButtonList runat="server" SelectedValue='<%# Eval("Sex") %>' />
答案 2 :(得分:0)
请注意,我无法操作中的单选按钮 代码隐藏,因为我无法访问单个转发器 项目
这就是ItemDataBound
的目的......
<asp:Repeater id="Repeater1" OnItemDataBound="repeaterDatabound" runat="server">
关于代码背后:
protected void repeaterDatabound(object Sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
(e.Item.FindControl("Repeater1") as RadioButtonList).SelectedValue=((Dependent)e.Item.DataItem).Sex.ToString();
}
}