0

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

因此,在这种情况下,我的中继器具有 (Container.DataItem).Sex,它等于“M”或“F”。如何在我的单选按钮中使用这些数据来选择合适的值?

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

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

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

4

3 回答 3

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' %>" />
于 2012-08-13T15:52:06.607 回答
1

在此处查看此答案 在表单视图中的转发器中从代码隐藏的下拉列表中设置选定的值,您应该能够执行以下操作:

<asp:RadioButtonList runat="server" SelectedValue='<%# Eval("Sex") %>' />
于 2012-08-13T16:05:48.017 回答
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();
    }
}
于 2012-08-13T15:58:41.040 回答