1

ItemTemplateコントロール内から値を取得しようとしていますListView1

<ItemTemplate>
    <asp:Label ID="Label1" runat="server" Text="test message" />
    <asp:RadioButtonList ID="RadioButtonList1" runat="server" 
        RepeatDirection="Horizontal">
            <asp:ListItem>1</asp:ListItem>
            <asp:ListItem>2</asp:ListItem>
            <asp:ListItem>3</asp:ListItem>
            <asp:ListItem>4</asp:ListItem>
        <asp:ListItem Value="5">
    </asp:ListItem>
    </asp:RadioButtonList>
</ItemTemplate>

protected void btnSubmit_Click(object sender, EventArgs e)
{   
    int score = 0;
        foreach (ListViewItem item in RadioButtonList1.Items)
        {
            ListViewDataItem theValue = RadioButtonList1.Items[0];
            RadioButtonList myValue = (RadioButtonList)theValue.FindControl("RadioButtonList1");

            score += int.Parse(myValue.SelectedItem.Value);
    }
    // display score
}

助言がありますか?

4

1 に答える 1

2

RBL 内のアイテムを見つける前にループしようとしていたため、コードを変更しました。

  foreach (ListViewItem item in ListView.Items)
        {
            if (item.ItemType != ListViewItemType.DataItem)
                 continue;

            var rbl = (RadioButtonList)item.FindControl("RadioButtonList1");
            if (!string.IsNullOrEmpty(rbl.SelectedValue))
                 score += int.Parse(rbl.SelectedValue);
    }
于 2012-08-02T15:18:50.343 に答える