0

最初の列には、大学のリストを表示しています。各大学には、2列目に表示されている複数のコースがあります。

ユーザーの選択に課される制限:

ユーザーが大学(MITなど)を選択する場合、選択した大学にのみ対応するコースを選択できるようにする必要があります(この場合はコンピューターサイエンスと機械工学)。

jQueryを使用してこの機能を実現するにはどうすればよいですか?

次のデータをネストされたリピーターにバインドしています。

    public string currentCollege { get; set; }
    Dictionary<string, List<string>> colleges;
    class College
    {
        public College(string s)
        {
            Course = s;
        }
        public string Course { get; set; }
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        colleges = new Dictionary<string, List<string>>();
        colleges.Add("mit", new List<string>(new string[] { "computer science", "mechanical engg." }));
        colleges.Add("caltech", new List<string>(new string[] { "electrical engg", "cryptography"}));
        colleges.Add("harvard", new List<string>(new string[] { "language", "arts", "science" }));
        rptColleges.DataSource = colleges;
        rptColleges.DataBind();
    }
    protected void rptColleges_ItemDataBound(object sender, RepeaterItemEventArgs e)
    {
        if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
        {
            Repeater rptCourseNow = (e.Item.FindControl("rptCourses") as Repeater);
            rptCourseNow.DataSource = colleges[currentCollege];
            rptCourseNow.DataBind();
        }
    }

マークアップは次のとおりです-

   <asp:Repeater ID="rptColleges" runat="server" OnItemDataBound="rptColleges_ItemDataBound">
    <HeaderTemplate>
        <table>
    </HeaderTemplate>
    <ItemTemplate>
        <tr>
            <td>
                <asp:RadioButton ID="rbCollege" runat="server" value=<%# DataBinder.Eval((KeyValuePair<string, List<string>>)Container.DataItem, "Key") %> />
                <%# currentCollege = (string)DataBinder.Eval((KeyValuePair<string, List<string>>)Container.DataItem, "Key") %>
            </td>
            <td>
                <asp:Repeater ID="rptCourses" runat="server">
                    <HeaderTemplate>
                        <ul>
                    </HeaderTemplate>
                    <ItemTemplate>
                        <li>
                            <asp:RadioButton ID="rbCourse" value="<%#Container.DataItem %>" runat="server" />
                            &nbsp; <%#Container.DataItem %>
                        </li>
                    </ItemTemplate>
                    <FooterTemplate></ul></FooterTemplate>
                </asp:Repeater>
            </td>
        </tr>
    </ItemTemplate>
    <FooterTemplate></table></FooterTemplate>
</asp:Repeater>

ご協力ありがとうございました。

4

1 に答える 1

0

私が正しく理解していれば、ラジオボタンを1つの大学にグループ化する必要があります。RadioButtonのGroupNameプロパティを使用して、ラジオボタンのセクションを相互に排他的にすることができます。

このリンクをチェックしてください:

RadioButton.GroupNameプロパティ

于 2012-09-04T02:49:41.937 に答える