0

ネスター リピーターを使用して、テーブル内のラジオ ボタンのリストを動的に作成しています。

 <ItemTemplate>
                 <tr>
                     <td>
                        <asp:Label ID="lblAccID" runat="server" Text='<%# Eval("id") %>'></asp:Label>
                     </td>
                     <td>
                        <asp:Label ID="lblName" runat="server" Text='<%# Eval("name") %>'></asp:Label>
                     </td>
                     <td>  
                            <%-- POPULATE CONDITION RADIO BUTTONS --%>
                            <asp:Repeater ID="rpConditionRadioButtons" runat="server">
                                <ItemTemplate>
                                    <td>
                                        <asp:RadioButton ID="rbCondition" GroupName="gCondition" Text="" runat="server" />
                                    </td>
                                </ItemTemplate>
                            </asp:Repeater>
                     </td>
                </tr>
            </ItemTemplate>

しかし、それらをグループ化する方法がわかりません。(テーブルはオンザフライで作成されるため、ラジオ ボタン リストは使用できないと思います。)

GroupName 属性を使用して、ClientIDMode を Static に設定しようとしましたが、これは役に立ちませんでした。

4

1 に答える 1

0

リピーターをネストするRepeaterItemと、一意の識別子 (主キーなど) を持つ親も作成されます。それを内部リピーターのGroupNameプロパティに動的に追加できます。次の方法で、内側のリピーターからItemDataBound外側のリピーターの電流にアクセスできます( ID が含まれていると仮定します)。RepeaterItemItemDataBoundlblAccID.Text

protected void rpConditionRadioButtons_ItemDataBound(Object sender, RepeaterItemEventArgs e)
{
    if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
    {
        Repeater innerRepeater = (Repeater)sender;
        RepeaterItem outerItem = (RepeaterItem)innerRepeater.NamingContainer;
        Label lblAccID = (Label)outerItem.FindControl("lblAccID");
        RadioButton rbCondition = (RadioButton) e.Item.FindControl("rbCondition");
        rbCondition.GroupName = "gCondition_" + lblAccID.Text;
    }
}

コメント:

OK - ラジオ ボタンが見つかり、属性を変更できますが、独立して動作します。

恐れ入りますが、これは既知のバグです。

さらに支援が必要な場合は、この質問をご覧ください: asp.net ラジオ ボタンのグループ化

于 2013-06-18T08:11:50.087 に答える