为实现学生对老师的教学质量调查,发动学生对教师网上投票!一个学生可以对该班级的所有老师投票,两个选项满意或是不满意
我投票的数据表设计为
id  老师姓名  班级  任课课目  满意   不满意
1    张三     三(A) 语文     0      0
.
.
.
首先学生登陆,登陆后会依据学生班级自动列出该班所有老师的名字以及选项,如下:
<asp:repeater>
张三    三(A)  语文   (radiobutton)满意   (radiobutton)不满意
.
.
</repeater>
<asp:button>我要投票</button>
登陆的学生可以一次性给所有老师投票,然后点击“我要投票”按钮。
问题的重点:因为这个radiobutton是由数据绑定的时候自动生成的,如何在点击投票按钮以后可以获取每个分组的radiobbutton的值?因为点了投票按钮后要获取值并写回数据库就是这个过程怎么操作?
或者有高手直接给出代码的,高分谢!

解决方案 »

  1.   

    repeater没用过 
    应该跟gridview一样吧
    循环读取每行
    然后((radiobutton)repeater.findcontrol(“radiobutton的ID”)).checked //找到的控件要强制类型转换为radiobutton
    以上是获得是否被选中
    然后进行需要的操作
      

  2.   

    string a=""; //判断是否选中
            if (this.radiobutton.Checked == true)
            {
                a = "0";        }
            else
            {
                b = "1";
            }
    可以这样 ??
    用0或者1来区别 
    就是先判断是否选中 ....
      

  3.   

    radiobutton是数据绑定的吧?还是动态生成的?
    楼上的就可以的。
      

  4.   

    radiobutton是数据绑定的吧?还是动态生成的?
    楼上的就可以的。
      

  5.   


    就是这个样子,问题是每个老师的两个radiobutton是一组,因为这个radiobutton的id我在后台根本引用不出来
    我查了有贴子说用html的radio,但是那样我也无法在后台控制!下面给了我写的一个代码:<body>
        <form id="form1" runat="server" action="jyj_b12w12.aspx">
        <div>
        <asp:Repeater ID="rep_TeacherList" runat="server">
        <HeaderTemplate>
            <table style="width:600px; border:solid 1px #000;">
        </HeaderTemplate>
        <ItemTemplate>
        <tr>
            <td><%#DataBinder.Eval(Container.DataItem,"teachername") %></td>
            <td><%#DataBinder.Eval(Container.DataItem,"subject") %></td>
            <td><input type="radio"  name="rd1" />满意</td>
            <td><input type="radio"  name="rd1" />不满意</td>
        </tr>
        </ItemTemplate>
        <FooterTemplate>
            </table>
        </FooterTemplate>    
        </asp:Repeater>
        <table style="width:600px;">
        <tr><td style="height: 24px; text-align:center;"><asp:Button ID="sumbit" Text="我要投票" runat="server" OnClick="sumbit_Click" /></td></tr>
        </table>
            </div>
        </form>
    </body>
      

  6.   

    <HTML>
    <HEAD>
    <title>WebForm6</title>
    <meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
    <meta name="CODE_LANGUAGE" Content="C#">
    <meta name="vs_defaultClientScript" content="JavaScript">
    <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
    </HEAD>
    <body MS_POSITIONING="GridLayout">
    <form id="Form1" method="post" runat="server">
    <asp:Repeater id="Repeater1" runat="server">
    <HeaderTemplate>
    <table cellspacing="1" cellpadding="1" width="600" border="1" style="table-layout: fixed">
    <tr>
    <td width="100">教师</td>
    <td width="100">老师姓名</td>
    <td width="100">班级</td>
    <td width="100">任课课目</td>
    <td>&nbsp;</td>
    </tr>
    </table>
    </HeaderTemplate>
    <ItemTemplate>
    <table cellspacing="1" cellpadding="1" width="600" border="1" style="table-layout: fixed">
    <tr>
    <td width="100">
    <asp:Label id="Label1" runat="server">Label1</asp:Label></td>
    <td width="100">
    <asp:Label id="Label2" runat="server">Label2</asp:Label></td>
    <td width="100">
    <asp:Label id="Label3" runat="server">Label3</asp:Label></td>
    <td width="100">
    <asp:Label id="Label4" runat="server">Label4</asp:Label></td>
    <td>
    <asp:RadioButtonList id="rbtnApprove" runat="server" RepeatDirection="Horizontal">
    <asp:ListItem Value="1" Selected="True">满意</asp:ListItem>
    <asp:ListItem Value="0">不满意</asp:ListItem>
    </asp:RadioButtonList></td>
    </tr>
    </table>
    </ItemTemplate>
    </asp:Repeater>
    <asp:Button id="btnSave" style="Z-INDEX: 101; LEFT: 520px; POSITION: absolute; TOP: 216px" runat="server"
    Text="Save" Width="88px"></asp:Button>
    </form>
    </body>
    </HTML>
      

  7.   

    <HTML>
    <HEAD>
    <title>WebForm6</title>
    <meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
    <meta name="CODE_LANGUAGE" Content="C#">
    <meta name="vs_defaultClientScript" content="JavaScript">
    <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
    </HEAD>
    <body MS_POSITIONING="GridLayout">
    <form id="Form1" method="post" runat="server">
    <asp:Repeater id="Repeater1" runat="server">
    <HeaderTemplate>
    <table cellspacing="1" cellpadding="1" width="600" border="1" style="table-layout: fixed">
    <tr>
    <td width="100">教师</td>
    <td width="100">老师姓名</td>
    <td width="100">班级</td>
    <td width="100">任课课目</td>
    <td>&nbsp;</td>
    </tr>
    </table>
    </HeaderTemplate>
    <ItemTemplate>
    <table cellspacing="1" cellpadding="1" width="600" border="1" style="table-layout: fixed">
    <tr>
    <td width="100">
    <asp:Label id="Label1" runat="server">Label1</asp:Label></td>
    <td width="100">
    <asp:Label id="Label2" runat="server">Label2</asp:Label></td>
    <td width="100">
    <asp:Label id="Label3" runat="server">Label3</asp:Label></td>
    <td width="100">
    <asp:Label id="Label4" runat="server">Label4</asp:Label></td>
    <td>
    <asp:RadioButtonList id="rbtnApprove" runat="server" RepeatDirection="Horizontal">
    <asp:ListItem Value="1" Selected="True">满意</asp:ListItem>
    <asp:ListItem Value="0">不满意</asp:ListItem>
    </asp:RadioButtonList></td>
    </tr>
    </table>
    </ItemTemplate>
    </asp:Repeater>
    <asp:Button id="btnSave" style="Z-INDEX: 101; LEFT: 520px; POSITION: absolute; TOP: 216px" runat="server"
    Text="Save" Width="88px"></asp:Button>
    </form>
    </body>
    </HTML>
      

  8.   

    对不起,发重了
    cs code
    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Web;
    using System.Web.SessionState;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;namespace TestWeb
    {
    /// <summary>
    /// WebForm6 的摘要说明。
    /// </summary>
    public class WebForm6 : System.Web.UI.Page
    {
            protected System.Web.UI.WebControls.Label Label1;
            protected System.Web.UI.WebControls.RadioButtonList rbtnApprove;
            protected System.Web.UI.WebControls.Button btnSave;
            protected System.Web.UI.WebControls.Repeater Repeater1;
        
    private void Page_Load(object sender, System.EventArgs e)
    {
    // 在此处放置用户代码以初始化页面
    } #region Web 窗体设计器生成的代码
    override protected void OnInit(EventArgs e)
    {
    //
    // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
    //
    InitializeComponent();
    base.OnInit(e);
    }

    /// <summary>
    /// 设计器支持所需的方法 - 不要使用代码编辑器修改
    /// 此方法的内容。
    /// </summary>
    private void InitializeComponent()
    {    
                this.btnSave.Click += new System.EventHandler(this.btnSave_Click);
                this.Load += new System.EventHandler(this.Page_Load);        }
    #endregion        private void btnSave_Click(object sender, System.EventArgs e)
            {
                for (int i=0; i<this.Repeater1.Items.Count; i++)
                {
                    RadioButtonList rbtn = this.Repeater1.Items[i].FindControl("rbtnApprove") as RadioButtonList;
                    //这里就开始存储你的代码
                }
            }
    }
    }
      

  9.   

    参照上面的代码,后面的值就是//这里就开始存储你的代码
    if (rbtn.SelectedValue == "1")
    {
        //满意
    }
    else
    {
        //不满意
    }
      

  10.   

     <td > <input type="radio"  name="rd1" / >满意 </td > 
     <td > <input type="radio"  name="rd1" / >不满意 </td > 你的runat=server呢?不是服务器控件,你后台当然取不到了
      

  11.   

     <td > <input type="radio"  name="rd1" / >满意 </td > 
     <td > <input type="radio"  name="rd1" / >不满意 </td > 你的runat=server呢?不是服务器控件,你后台当然取不到了
      

  12.   

    NekChan
    你有QQ号吗?能不能加一下你,或者你加我,179002394
    还是不行啊,比如我在你那里加了一行 //这里就开始存储你的代码
                if (rbtn.SelectedValue == "1")
                {
                    Response.Write(rbtn.SelectedValue.ToString()+"<br/>");
                }
                else
                {
                    //不满意
                }
    结果不管我怎么选都还全部输出"1"
      

  13.   

    循环repeater的所有items 再用findcontrol找到radio判断不就行了吗,看来你对repeater还不是很熟啊,去看个列子就明白了
      

  14.   

    怎么不用radiobuttonlist,那不就方便了吗
      

  15.   

    怎么不用radiobuttonlist,那不就方便了吗
      

  16.   

    你的radiobutton没有id和runat=“server”
    后台当然取不到了
    把这些都加上,然后后台遍历items 并findcontrol
    然后强制类型转换为radiobutton
    就可以判断并进行其它操作了 
      

  17.   

    request.form["name"];
    你为你的radiobutton加一个相同name,这样就可以获得radiobutton的Checked属性了
      

  18.   

     //这里就开始存储你的代码
                if (rbtn.SelectedValue == "1")
                {
                    Response.Write(rbtn.SelectedValue.ToString()+"<br/>");
                }
                else
                {
                    //不满意
                }
    你只在等于1的时候才输出,这个时候如果输出的不是1,那我们还怎么写代码啊?