从Repeater控件中的数据中选择RadioButtonList中的值

时间:2012-08-13 15:45:38

标签: asp.net

我有一个转发器控件,在里面我有两个选择性别(男性,女性)的单选按钮。 保存页面时,我将所选值“M”或“F”保存到数据中。当我加载页面时,我希望根据保存的内容选择单选按钮。

所以,在这种情况下,我的转发器有(Container.DataItem).Sex,它等于'M'或'F'。如何在我的单选按钮中使用此数据来选择适当的值?

这是我想要使用的功能(但它不存在):

<asp:RadioButtonList runat="server" SelectedValue='<%# ((Dependent)(Container.DataItem)).Sex %>' />

请注意,我无法操作代码隐藏中的单选按钮,因为我无法访问各个转发器项目。

3 个答案:

答案 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();
    }
}