有这样一个问题,我不知道这样一个问题该怎么做,以前没有做过。
一个题干,下面是选项(单选),如果使用radiobuttonlist可以完成一个完整的题目,但是实际上是有多个问题的,我如何动态的生成多个radiobuttonlist呢?或者大家有没有其他的方法来实现这个功能?

解决方案 »

  1.   

    看你的题目还有答案的数据库表设计怎么样,一般是弄个panal,之后判断某道题有多少个答案,之后循环生成对应数量的RBtn,记得设置GroupName
      

  2.   

    最老土也最实用的方法就是拼串,写个公共方法。然后把每个题传进去对每个选项进行for循环追加HTML。我以前也这么搞的。
      

  3.   


     public string DrawHtml(int Survey_ID)
        {
            DataTable dt = this.getFeedback(Survey_ID);
            StringBuilder sb = new StringBuilder();
            int iRows = 0;
            if (dt != null)
            {
                iRows = dt.Rows.Count;
            }
            if (iRows == 0)
            {
                return "创建调查问卷失败,请联系重新来一次,或者联系管理员,谢谢合作!";
                btn_Save.Visible = false;
            }
            DataRow dr = dt.Rows[0];
            string temp = "";
            temp = dr["Question_Title"].ToString();
            sb.Append("<table border =\"0\" cellpadding=\"0\" cellspacing=\"0\" style=\"width:760px;border:1px #999999 solid;margin-top:5px;\">\r");
            sb.Append("<tr><td style=\"background-color:#f0f0f0;height:28px;font-size:12px;\">调查问卷</td></tr>\r");
            sb.Append("<tr><td class=\"examT\">1、" + dr["Question_Title"].ToString() + "</td></tr>\r");
            int j = 1;
            int m = 1;
            for (int i = 0; i < iRows; i++)
            {
                dr = dt.Rows[i];
                if (temp != dr["Question_Title"].ToString())
                {
                    sb.Append("<tr><td style=\"border-bottom:1px #999999 solid;\">" + (j + 1).ToString() + "、" + dr["Question_Title"].ToString() + "</td></tr> \r");
                    temp = dr["Question_Title"].ToString();
                    j = j + 1;
                    m = 1;
                }            if ( dr["RepeatDirection"].ToString() =="0")
                {
                    if (m > 1) { continue; }
                    m = m + 1;
                    DataTable dt_item = this.getItem(int.Parse(dr["CTQ_ID"].ToString()));
                    sb.Append("<tr bgcolor='#ffffff'><td style=\"border-bottom:1px #999999 solid;\">\r<table border='0'><tr >");
                    for (int k = 0; k < dt_item.Rows.Count; k++)
                    {
                        if (temp == dr["Question_Title"].ToString())
                        {
                            DataRow dr_item = dt_item.Rows[k];
                            if (dr["Answer_Type"].ToString() == "0")
                            {
                                sb.Append("<td ><input ID=\"EQA_R_" + dr["CTQ_ID"].ToString() + "_" + dr_item["CTA_ID"].ToString() + "\" type=\"radio\"  runat=\"server\" name=\"EQA_R_" + dr["CTQ_ID"].ToString() + "\" value =\"" + dr_item["Answer_Title"].ToString() + "\" />" + dr_item["Answer_Title"].ToString() + "</td>\r");
                            }
                            else
                            {
                                sb.Append("<td ><input ID=\"EQA_R_" + dr["CTQ_ID"].ToString() + "_" + dr_item["CTA_ID"].ToString() + "\" type=\"radio\"  runat=\"server\" name=\"EQA_R_" + dr["CTQ_ID"].ToString() + "\" value =\"" + dr_item["Answer_Title"].ToString() + "\" />" + dr_item["Answer_Title"].ToString() + "<input ID=\"EQA_TX_" + dr["CTQ_ID"].ToString() + "\" type=\"text\" runat=\"server\" name=\"EQA_TX_" + dr["CTQ_ID"].ToString() + "\" style=\"border:0px;border-bottom:1px solid #666666;width:504px;\"/></td>\r");
                            }
                        }
                        else
                        {                    }
                    }
                    sb.Append("</tr></table>\r</td><tr>\r");
                }
                else
                {
                    switch (dr["Question_Type"].ToString())
                    {
                        case "1":
                            if (dr["Answer_Type"].ToString() == "0")
                            {
                                sb.Append("<tr><td style=\"border-bottom:1px #999999 solid;\"><input ID=\"EQA_R_" + dr["CTQ_ID"].ToString() + "_" + dr["CTA_ID"].ToString() + "\" type=\"radio\"  runat=\"server\" name=\"EQA_R_" + dr["CTQ_ID"].ToString() + "\" value =\"" + dr["Answer_Title"].ToString() + "\" />" + dr["Answer_Title"].ToString() + "</td></tr>\r");
                            }
                            else
                            {
                                sb.Append("<tr><td style=\"border-bottom:1px #999999 solid;\"><input ID=\"EQA_R_" + dr["CTQ_ID"].ToString() + "_" + dr["CTA_ID"].ToString() + "\" type=\"radio\"  runat=\"server\" name=\"EQA_R_" + dr["CTQ_ID"].ToString() + "\" value =\"" + dr["Answer_Title"].ToString() + "\" />" + dr["Answer_Title"].ToString() + "<input ID=\"EQA_TX_" + dr["CTQ_ID"].ToString() + "\" type=\"text\" runat=\"server\" name=\"EQA_TX_" + dr["CTQ_ID"].ToString() + "\" style=\"border:0px;border-bottom:1px solid #666666;width:504px;\"/></td></tr>\r");
                            }
                            break;
                        case "2":
                            if (dr["Answer_Type"].ToString() == "0")
                            {
                                sb.Append("<tr><td style=\"border-bottom:1px #999999 solid;\"><input id=\"EQA_C_" + dr["CTQ_ID"].ToString() + "_" + dr["CTA_ID"].ToString() + "\" type=\"checkbox\" runat=\"server\" name =\"EQA_C_" + dr["CTQ_ID"].ToString() + "_" + dr["CTA_ID"].ToString() + "\" value =\"" + dr["Answer_Title"].ToString() + "\"/>" + dr["Answer_Title"].ToString() + "</td></tr> \r");
                            }
                            else
                            {
                                sb.Append("<tr><td style=\"border-bottom:1px #999999 solid;\"><input id=\"EQA_C_" + dr["CTQ_ID"].ToString() + "_" + dr["CTA_ID"].ToString() + "\" type=\"checkbox\" runat=\"server\" name =\"EQA_C_" + dr["CTQ_ID"].ToString() + "_" + dr["CTA_ID"].ToString() + "\" value =\"" + dr["Answer_Title"].ToString() + "\"/>" + dr["Answer_Title"].ToString() + "<input ID=\"EQA_TX_" + dr["CTQ_ID"].ToString() + "\" type=\"text\" runat=\"server\" name=\"EQA_TX_" + dr["CTQ_ID"].ToString() + "\" style=\"border:0px;border-bottom:1px solid #666666;width:504px;\"/></td></tr> \r");
                            }
                            break;
                        case "3":
                            sb.Append("<tr><td style=\"border-bottom:1px #999999 solid;\"><input ID=\"EQA_T_" + dr["CTQ_ID"].ToString() + "\" type=\"text\" runat=\"server\" name=\"EQA_T_" + dr["CTQ_ID"].ToString() + "\" style=\"border:0px;border-bottom:1px solid #666666;width:504px;\"/></td></tr> \r");
                            break;
                        default:
                            break;
                    }
                }
            }
            sb.Append("<tr><td>&nbsp;</td></tr></table>");
            return sb.ToString();
        }
      

  4.   

    Reperter嵌套RadioButtonList不就可以了嘛
      

  5.   

    <asp:RadioButtonList ID="RadioButtonList1" runat="server">
    </asp:RadioButtonList>
    可以绑定数据源的 数据源有多少条 RadioButtonList 里面不就有多少个选项吗 
      

  6.   

    动态生成radiobuttonlist可以这样:
    先custom一个控件,radiobuttonlist个数如4或5个(任意个)答案作为属性,
    从数据库字段绑定,在控件render时,radiobuttonlist从属性动态给予即可。很简单。