【CheckBoxList】 换成【CheckBox】 下面的代码该怎么修改

随心录123 2012-03-12 05:35:54
【CheckBoxList】 换成【CheckBox】 下面的代码该怎么修改
 SqlDataReader sdr = cmd.ExecuteReader();
while (sdr.Read())
{

Literal littxt = new Literal();
Literal litti = new Literal();
//CheckBoxList che = new CheckBoxList();//复选框多选择
CheckBoxList cbk = new CheckBoxList();


littxt.Text = "<input type='hidden' name='db_" + bie.ToString() + "' id='db_" + bie + "' value='' answer='" + Server.HtmlEncode(sdr["rightAns"].ToString()) + "'/>" + "<div class='result' id='result_" + bie.ToString() + "' >" + i.ToString() + "、" + Server.HtmlEncode(sdr["testContent"].ToString());
litti.Text = "</div>";
littcookie["littxt"] += HttpUtility.UrlEncode(littxt.Text + "|");
littcookie["acbk"] += HttpUtility.UrlEncode(sdr["testAns1"].ToString()) + "|";
littcookie["bcbk"] += HttpUtility.UrlEncode(sdr["testAns2"].ToString()) + "|";
littcookie["ccbk"] += HttpUtility.UrlEncode(sdr["testAns3"].ToString()) + "|";
littcookie["dcbk"] += HttpUtility.UrlEncode(sdr["testAns4"].ToString()) + "|";
cbk.Items.Add("A. " + Server.HtmlEncode(sdr["testAns1"].ToString()));
cbk.Items.Add("B. " + Server.HtmlEncode(sdr["testAns2"].ToString()));
cbk.Items.Add("C. " + Server.HtmlEncode(sdr["testAns3"].ToString()));
cbk.Items.Add("D. " + Server.HtmlEncode(sdr["testAns4"].ToString()));

cbk.Font.Size = 11;

for (int j = 1; j <= 4; j++)
{

cbk.Items[j - 1].Attributes.Add("onclick", " db(" + bie.ToString() + ", " + num++ + ")");//给input标签加事件

}


num = 1;
bie++;
Ans += sdr[6].ToString();
if (Session["a"] == null)
{
Session["Ans"] = Ans;
}
cbk.Attributes.Remove("name");
Panel1.Controls.Add(littxt);
Panel1.Controls.Add(cbk);
Panel1.Controls.Add(litti);
i++;
tNUM++;



}
...全文
138 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
随心录123 2012-03-16
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 ym231074255 的回复:]
就是说你目的是想取到多选框里的多选值?
[/Quote]
取到是取到的。只是 JS的效果 点击下一题的时候 没有记录到。然后JS 就出错了。就交卷不到。
其实看我给的图 就知道了。 需要什么效果了。是吧。
ym231074255 2012-03-15
  • 打赏
  • 举报
回复
就是说你目的是想取到多选框里的多选值?
孟子E章 2012-03-15
  • 打赏
  • 举报
回复
<input type=checkbox name=x value="<%="赋值"%>">

拼接html输出也是可以的
随心录123 2012-03-14
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 net_lover 的回复:]
如果你的 目的只是 name 都是一样的,那么你可以使用html控件,<input type=checkbox name=x>不要加任何runat=server
[/Quote]
那不加的话 我后台怎么给他赋值呢?
孟子E章 2012-03-14
  • 打赏
  • 举报
回复
如果你的 目的只是 name 都是一样的,那么你可以使用html控件,<input type=checkbox name=x>不要加任何runat=server
随心录123 2012-03-14
  • 打赏
  • 举报
回复
下图是要实现的效果。 但是 多选的 还没有记录到值
点击下一题 就 上一题的 只记录了 一个值。
随心录123 2012-03-14
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 net_lover 的回复:]
CheckBoxList是非常方便的,你为啥自己拼接呢?你自己拼接的name不也是不一样的吗?
CheckBoxList是非常好用的,再次问一下:不知道究竟要实现什么功能???
[/Quote]
因为 用原来的CheckBoxList 页面上面 自动生成的name属性 会有 $0 $1 $2 $3 这样的符号。不但移除不了。 还修改不了。 而我要的是 里面的 四个复选框的 name 都是一样的。

配合 JS的取值判断 和存值。 和记录值。

随心录123 2012-03-13
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 net_lover 的回复:]
$是系统生成的,不能去掉,你可以使用html的input实现,
$前面的内容都是一样的,可以知道哪些是一组的
[/Quote]
大神 我该怎么实现啊。怎么修改啊。怎么写呢。。。困扰我两天了。。救救我吧
孟子E章 2012-03-13
  • 打赏
  • 举报
回复
$是系统生成的,不能去掉,你可以使用html的input实现,
$前面的内容都是一样的,可以知道哪些是一组的
随心录123 2012-03-13
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 ym231074255 的回复:]
引用 2 楼 yankai159357 的回复:
引用 1 楼 net_lover 的回复:
那就只能这样啊
cbkA.Attributes.Add
cbkB.Attributes.Add

...

换成CheckBox不是好的做法

可是这样导致 我的页面代码 里面的name 控制不了

HTML code
<input type='hidden' name='db_……
[/Quote]
ID和她的值 是不一样的。不能去ID的
ym231074255 2012-03-13
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 yankai159357 的回复:]
引用 1 楼 net_lover 的回复:
那就只能这样啊
cbkA.Attributes.Add
cbkB.Attributes.Add

...

换成CheckBox不是好的做法

可是这样导致 我的页面代码 里面的name 控制不了

HTML code
<input type='hidden' name='db_3' id='db_3' value='' ans……
[/Quote]

- - 我又回来了。。
name的值不晓得为什么多了个 符号$ 出来 我要用JS取值。不要有 $ 符号 该怎么办啊。大神?
JS取的话取他ID咯。。ID没$
随心录123 2012-03-13
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 net_lover 的回复:]
服务器控件就是这样的,就是取的话,你可以使用
document.getElementById("cbk").getElementsByTagName("input")
来进行遍历
[/Quote]
我现在不是想取 是想把 $ 这个符号去掉就好了 请问大神 我该 怎么去掉这个符号呀。您来个JS移除行不
孟子E章 2012-03-13
  • 打赏
  • 举报
回复
CheckBoxList是非常方便的,你为啥自己拼接呢?你自己拼接的name不也是不一样的吗?
CheckBoxList是非常好用的,再次问一下:不知道究竟要实现什么功能???
随心录123 2012-03-13
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 net_lover 的回复:]
你究竟要实现什么功能啊?在客户端js得到的方法很多啊,最简单的就是
allBox = document.getElementById("cbk").getElementsByTagName("input")

或者使用jquery进行操作
$("input[name^='cbk']").each(function () {
alert(this.name);
})
[/Quote]
最后 全部用来后台输出了。那个该死的 自动生成 。逼我这么做了。
替换代码

table.Text = " <table id='cbk" + i.ToString() + "' border='0' style='font-size:11pt;'/>";
tra.Text = "<tr><td><input id='cbk" + i.ToString() + "_0' type='checkbox' name='cbk" + i.ToString() + "' value='1' onclick='db(" + bie.ToString() + "," + num++ + ")' /><label for='cbk" + i.ToString() + "_0'>A. " + Server.HtmlEncode(sdr["testAns1"].ToString()) + "</label></td></tr>";

trb.Text = "<tr><td><input id='cbk" + i.ToString() + "_1' type='checkbox' name='cbk" + i.ToString() + "' value='2' onclick='db(" + bie.ToString() + "," + num++ + ")' /><label for='cbk" + i.ToString() + "_0'>B. " + Server.HtmlEncode(sdr["testAns2"].ToString()) + "</label></td></tr>";
trc.Text = "<tr><td><input id='cbk" + i.ToString() + "_2' type='checkbox' name='cbk" + i.ToString() + "' value='3' onclick='db(" + bie.ToString() + "," + num++ + ")' /><label for='cbk" + i.ToString() + "_0'>C. " + Server.HtmlEncode(sdr["testAns3"].ToString()) + "</label></td></tr>";
trd.Text = "<tr><td><input id='cbk" + i.ToString() + "_3' type='checkbox' name='cbk" + i.ToString() + "' value='4' onclick='db(" + bie.ToString() + "," + num++ + ")' /><label for='cbk" + i.ToString() + "_0'>D. " + Server.HtmlEncode(sdr["testAns4"].ToString()) + "</label></td></tr></table>";





//cbk.Items.Add("A. " + Server.HtmlEncode(sdr["testAns1"].ToString()));
//cbk.Items.Add("B. " + Server.HtmlEncode(sdr["testAns2"].ToString()));
//cbk.Items.Add("C. " + Server.HtmlEncode(sdr["testAns3"].ToString()));
//cbk.Items.Add("D. " + Server.HtmlEncode(sdr["testAns4"].ToString()));

ym231074255 2012-03-13
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 net_lover 的回复:]
你究竟要实现什么功能啊?在客户端js得到的方法很多啊,最简单的就是
allBox = document.getElementById("cbk").getElementsByTagName("input")

或者使用jquery进行操作
$("input[name^='cbk']").each(function () {
alert(this.name);
})
[/Quote]

+1
孟子E章 2012-03-13
  • 打赏
  • 举报
回复
你究竟要实现什么功能啊?在客户端js得到的方法很多啊,最简单的就是
allBox = document.getElementById("cbk").getElementsByTagName("input")

或者使用jquery进行操作
$("input[name^='cbk']").each(function () {
alert(this.name);
})
孟子E章 2012-03-12
  • 打赏
  • 举报
回复
服务器控件就是这样的,就是取的话,你可以使用
document.getElementById("cbk").getElementsByTagName("input")
来进行遍历
随心录123 2012-03-12
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 net_lover 的回复:]
那就只能这样啊
cbkA.Attributes.Add
cbkB.Attributes.Add

...

换成CheckBox不是好的做法
[/Quote]
可是这样导致 我的页面代码 里面的name 控制不了
<input type='hidden' name='db_3'  id='db_3' value='' answer='1,3'/><div class='result' id='result_3' >4、1+1=<table id="cbk" border="0" style="font-size:11pt;">
<tr>
<td><input id="cbk_0" type="checkbox" name="cbk$0" onclick=" db(3, 1);" /><label for="cbk_0">A. 1</label></td>
</tr><tr>
<td><input id="cbk_1" type="checkbox" name="cbk$1" onclick=" db(3, 2);" /><label for="cbk_1">B. 2</label></td>
</tr><tr>
<td><input id="cbk_2" type="checkbox" name="cbk$2" onclick=" db(3, 3);" /><label for="cbk_2">C. 3</label></td>
</tr><tr>
<td><input id="cbk_3" type="checkbox" name="cbk$3" onclick=" db(3, 4);" /><label for="cbk_3">D. 4</label></td>
</tr>
</table></div>

name的值不晓得为什么多了个 符号$ 出来 我要用JS取值。不要有 $ 符号 该怎么办啊。大神?
孟子E章 2012-03-12
  • 打赏
  • 举报
回复
那就只能这样啊
cbkA.Attributes.Add
cbkB.Attributes.Add

...

换成CheckBox不是好的做法

62,268

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧