在线投票 问题 和答案自动加载的。
前台代码如下:
<asp:Repeater ID="rpQuestion" runat="server">
                <ItemTemplate>          
                第<%# Container.ItemIndex + 1%>题:<%# Eval("Q_Name") %>:
                <br /><asp:RadioButtonList ID="rbtList_Question" runat="server">
                    </asp:RadioButtonList><br />      
                </ItemTemplate>
            </asp:Repeater>可以加载
问题1:我想点提交按钮时,用JS判断嵌套在Repeater 中所有的RadioButtonList是否选中
问题2:当用户选择一个RadioButtonList的值时,我想在题目旁边给他放个DIV 来提示选中 用JS来控制。

解决方案 »

  1.   

    如果不繁琐的话 AJAXPRO我还可以接受。 考虑性能  希望各位能贴代码上来。
    我只做过单个RadioButtonList  嵌套的没做过。
      

  2.   

    在databound里获取Radiobuttonlist通过Attibutes添加JS方法获取值。
    参考
      

  3.   

    问题1:我想点提交按钮时,用JS判断嵌套在Repeater 中所有的RadioButtonList是否选中
    ==要用js取,要给它一个name属性,我记得当时是以题目的ID为name(你可以看看那些大的门户网站是怎么做
    投票这方面的),js根据name来判有没有取值。问题2:当用户选择一个RadioButtonList的值时,我想在题目旁边给他放个DIV 来提示选中 用JS来控制。 
    ==你可以把一个题目及答案用个标签(比如span)包含起来,加上onclick事件。
      

  4.   

    参考:<html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>    <script type="text/javascript">
            function CheckAll() {
                var count = parseInt("<%= Count %>");
                for (var i = 0; i < count; i++) {
                    var div = document.getElementById("content" + i);
                    if (div) {
                        var rbs = div.getElementsByTagName("input");
                        var checked = false;
                        for (var j = 0; j < rbs.length; j++) {
                            if (rbs[j].type == "radio" && rbs[j].checked) {
                                checked = true;
                            }
                        }
                        if (!checked) {
                            alert("第" + (i + 1) + "题没有选择");
                            return false;
                        }
                    }
                }
                return true;
            }        function ShowSelection(cb,index) {
                document.getElementById("span" + index).innerHTML = "您选择的值为:" + cb.value;
            }
        </script></head>
    <body>
        <form id="form1" runat="server">
        <div>
            <asp:Repeater ID="rpQuestion" runat="server" OnItemDataBound="rpQuestion_ItemDataBound">
                <ItemTemplate>
                    <div id="content<%# Container.ItemIndex %>">
                        第<%# Container.ItemIndex + 1%>题:<%# Eval("Q_Name") %>:
                        <br />
                        <asp:RadioButtonList ID="rbtList_Question" runat="server">
                            <asp:ListItem Text="选项1" Value="1"></asp:ListItem>
                            <asp:ListItem Text="选项2" Value="2"></asp:ListItem>
                            <asp:ListItem Text="选项3" Value="3"></asp:ListItem>
                            <asp:ListItem Text="选项4" Value="4"></asp:ListItem>
                        </asp:RadioButtonList>
                        <br />
                        <span id="span<%# Container.ItemIndex %>">
                        </span>
                    </div>
                </ItemTemplate>
            </asp:Repeater>
            <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" OnClientClick="return CheckAll()" />
        </div>
        </form>
    </body>
    </html>
        public partial class Repeater : System.Web.UI.Page
        {
            protected int Count = 0;        protected void Page_Load(object sender, EventArgs e)
            {
                if (!IsPostBack)
                {
                    DataTable dt = new DataTable();
                    dt.Columns.Add(new DataColumn("Q_Name", typeof(string)));
                    for (int i = 0; i < 10; i++)
                    {
                        dt.Rows.Add("第" + (i + 1) + "题题目");
                    }
                    rpQuestion.DataSource = dt;
                    rpQuestion.DataBind();
                    Count = rpQuestion.Items.Count;
                }
            }        protected void Button1_Click(object sender, EventArgs e)
            {
     
            }        protected void rpQuestion_ItemDataBound(object sender, RepeaterItemEventArgs e)
            {
                RadioButtonList rbl = e.Item.FindControl("rbtList_Question") as RadioButtonList;
                if (rbl != null)
                {
                    foreach (ListItem li in rbl.Items)
                        li.Attributes.Add("onclick", "ShowSelection(this," + e.Item.ItemIndex + ");");
                }
            }
        }