asp.net 动态生成试卷的问题 ASP.NET 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 根据具体情况,后台给个方向,让管理员添加试题的时候选择选择类型:单选,多选(给这栏设置个字段)前台试题调用的时候,根据选择类型,在后台设置控件,服务器控件实现起来太麻烦,建议使用ajax的方式追加服务器控件,实现多选和单选下边是个例子,和你说的差不多 /// <summary> /// 创建控件 /// </summary> /// <param name="item"></param> /// <returns></returns> private string createControl(Model.ProductAttribute item) { string input = ""; if (item.OptionalType.Value == 0) { if (item.EntryType.Value == 0) /*input*/ { input += string.Format("<div><input type=\"text\" class=\"ipt1\" name=\"attr_[{0}]\"/></div>", item.ID); } else if (item.EntryType.Value == 1)/*select*/ { input += string.Format("<div><select name=\"attr_[{0}]\">", item.ID); input += "<option value=\"请选择\">请选择</option>"; foreach (string option in Regex.Split(item.OptionalValueList, "\r\n")) { if (!string.IsNullOrEmpty(option)) { input += "<option value=\"" + option + "\">" + option + "</option>"; } } input += "</select></div>"; } else if (item.EntryType.Value == 2)/*textarea*/ { input += string.Format("<div><textarea class=\"ipt3\" name=\"attr_[{0}]\" cols=\"35\" rows=\"4\"></textarea></div>", item.ID); } } else if (item.OptionalType.Value == 1 || item.OptionalType.Value == 2) { if (item.EntryType.Value == 0) { input += string.Format("<input name=\"hid_attr_{0}\" type=\"hidden\" value=\"1\" /><div><a href=\"javascript:;\" onclick=\"addControl(this,{0});\">[+]</a> <input type=\"text\" class=\"ipt1\" name=\"attr_[{0}]_1\"/>", item.ID); input += string.Format(" 属性价格 <input class=\"ipt1\" style=\"width:50px;\" type=\"text\" name=\"attr_price_[{0}]_1\"/></div>", item.ID); } if (item.EntryType.Value == 1) { input += string.Format("<input name=\"hid_attr_{0}\" type=\"hidden\" value=\"1\" /><div><a href=\"javascript:;\" onclick=\"addControl(this,{0});\">[+]</a> <select name=\"attr_[{0}]_1\">", item.ID); input += "<option value=\"请选择\">请选择</option>"; foreach (string option in Regex.Split(item.OptionalValueList, "\r\n")) { if (!string.IsNullOrEmpty(option)) { input += "<option value=\"" + option + "\">" + option + "</option>"; } } input += string.Format("</select> 属性价格 <input class=\"ipt1\" style=\"width:50px;\" type=\"text\" name=\"attr_price_[{0}]_1\"/></div>", item.ID); } else if (item.EntryType.Value == 2) { input += string.Format("<input name=\"hid_attr_{0}\" type=\"hidden\" value=\"1\" /><div><a href=\"javascript:;\" onclick=\"addControl(this,{0});\">[+]</a> <textarea class=\"ipt3\" name=\"attr_[{0}]_1\" cols=\"35\" rows=\"4\"></textarea> 属性价格 <input style=\"width:50px;\" type=\"text\" class=\"ipt1\" name=\"attr_price_[{0}]_1\"/></div>", item.ID); } } return input; } 单选题的显示我可以在repeater控件里用radiobuttonlist控件来绑定题目的选项,多选题(不用checkButtonlist控件,因为和radiobuttonlist控件外观不一样),我怎么来显示多选题呢?在后台我每读取一个选项就追加一个radiobutton,这样对我读取用户答案时会不会有麻烦 这个问题应该和你数据库设计关系要多一点,如果数据库设计好了,就生成试卷和答题很容易搞定的,外部使用jquery 遍历出所有的答题答案 在把每个题的正确答案放在隐藏与对比一下就ok了. 你是纠结客户端与服务器控件的问题吧?那你就把所有的服务器控件都设置成:CheckBoxList通过JS控制实现单选 还是多选 在页面上添加一个placeholder、label以及用于提交的button protected void Page_Load(object sender, EventArgs e) { Label lbl1 = new Label(); lbl1.ID = "lblQuestion"; lbl1.Text = "1.Web服务器控件不包括()。"; ph1.Controls.Add(lbl1); RadioButtonList rdbl = new RadioButtonList(); rdbl.ID = "rdblChoice"; rdbl.Items.Add(new ListItem("A.Wizard", "A")); rdbl.Items.Add(new ListItem("B.input", "B")); rdbl.Items.Add(new ListItem("C.Adrotator", "C")); rdbl.Items.Add(new ListItem("D.Calender", "D")); ph1.Controls.Add(rdbl); } BulletedList在IE中大小设置的问题 net中怎么实现onmouseover一个按钮后更新页面中的一个小页面? sql语句换行写 报错哦 字母可以比较先手顺序吗? 写一个delete的触发器 怎么调用本地的动态库呢? 连接oracle数据库为什么连接打开了就关闭不了的呢? 【项目托管】使用VS2013链接微软的TSF 关于在web上显示图片的问题 高分求在线日历显示工作安排的例子(UP有分) ASP.NET抽奖活动,奖品产生规则 自定义组合控件出现的问题
追加服务器控件,实现多选和单选下边是个例子,和你说的差不多
/// <summary>
/// 创建控件
/// </summary>
/// <param name="item"></param>
/// <returns></returns>
private string createControl(Model.ProductAttribute item)
{
string input = "";
if (item.OptionalType.Value == 0)
{
if (item.EntryType.Value == 0) /*input*/
{
input += string.Format("<div><input type=\"text\" class=\"ipt1\" name=\"attr_[{0}]\"/></div>", item.ID);
}
else if (item.EntryType.Value == 1)/*select*/
{
input += string.Format("<div><select name=\"attr_[{0}]\">", item.ID);
input += "<option value=\"请选择\">请选择</option>";
foreach (string option in Regex.Split(item.OptionalValueList, "\r\n"))
{
if (!string.IsNullOrEmpty(option))
{
input += "<option value=\"" + option + "\">" + option + "</option>";
}
}
input += "</select></div>";
}
else if (item.EntryType.Value == 2)/*textarea*/
{
input += string.Format("<div><textarea class=\"ipt3\" name=\"attr_[{0}]\" cols=\"35\" rows=\"4\"></textarea></div>", item.ID);
}
}
else if (item.OptionalType.Value == 1 || item.OptionalType.Value == 2)
{
if (item.EntryType.Value == 0)
{
input += string.Format("<input name=\"hid_attr_{0}\" type=\"hidden\" value=\"1\" /><div><a href=\"javascript:;\" onclick=\"addControl(this,{0});\">[+]</a> <input type=\"text\" class=\"ipt1\" name=\"attr_[{0}]_1\"/>", item.ID);
input += string.Format(" 属性价格 <input class=\"ipt1\" style=\"width:50px;\" type=\"text\" name=\"attr_price_[{0}]_1\"/></div>", item.ID);
}
if (item.EntryType.Value == 1)
{
input += string.Format("<input name=\"hid_attr_{0}\" type=\"hidden\" value=\"1\" /><div><a href=\"javascript:;\" onclick=\"addControl(this,{0});\">[+]</a> <select name=\"attr_[{0}]_1\">", item.ID);
input += "<option value=\"请选择\">请选择</option>";
foreach (string option in Regex.Split(item.OptionalValueList, "\r\n"))
{
if (!string.IsNullOrEmpty(option))
{
input += "<option value=\"" + option + "\">" + option + "</option>";
}
}
input += string.Format("</select> 属性价格 <input class=\"ipt1\" style=\"width:50px;\" type=\"text\" name=\"attr_price_[{0}]_1\"/></div>", item.ID);
}
else if (item.EntryType.Value == 2)
{
input += string.Format("<input name=\"hid_attr_{0}\" type=\"hidden\" value=\"1\" /><div><a href=\"javascript:;\" onclick=\"addControl(this,{0});\">[+]</a> <textarea class=\"ipt3\" name=\"attr_[{0}]_1\" cols=\"35\" rows=\"4\"></textarea> 属性价格 <input style=\"width:50px;\" type=\"text\" class=\"ipt1\" name=\"attr_price_[{0}]_1\"/></div>", item.ID);
}
} return input;
}
在后台我每读取一个选项就追加一个radiobutton,这样对我读取用户答案时会不会有麻烦
protected void Page_Load(object sender, EventArgs e)
{
Label lbl1 = new Label();
lbl1.ID = "lblQuestion";
lbl1.Text = "1.Web服务器控件不包括()。";
ph1.Controls.Add(lbl1);
RadioButtonList rdbl = new RadioButtonList();
rdbl.ID = "rdblChoice";
rdbl.Items.Add(new ListItem("A.Wizard", "A"));
rdbl.Items.Add(new ListItem("B.input", "B"));
rdbl.Items.Add(new ListItem("C.Adrotator", "C"));
rdbl.Items.Add(new ListItem("D.Calender", "D"));
ph1.Controls.Add(rdbl);
}