求助!关于CHECKBOX

hejinghj 2003-10-15 04:44:50
一段程序如下:
private void Button2_Click(object sender, System.EventArgs e)
{
int rowCnt;
int rowCtr;
int cellCtr;
int cellCnt;

rowCnt = int.Parse(TextBox1.Text);
cellCnt = int.Parse(TextBox2.Text);

for(rowCtr=1; rowCtr <= rowCnt; rowCtr++)
{

TableRow tRow = new TableRow();
Table2.Rows.Add(tRow);
for (cellCtr = 1; cellCtr <= cellCnt; cellCtr++)
{

TableCell tCell = new TableCell();
tRow.Cells.Add(tCell);
string prodID = rowCtr + "_" + cellCtr;
CheckBox Box = new CheckBox();
tCell.Controls.Add(Box);
Box.Text = rowCtr + ":" + cellCtr;

}
}
}
我该如何获得用户都选择了哪些CheckBox呢?
...全文
52 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
hejinghj 2003-10-20
  • 打赏
  • 举报
回复
怎么赋ID值?
Abac 2003-10-20
  • 打赏
  • 举报
回复
你给生成的checkbox赋个ID值,没有ID当然不能操作其ID了。
hejinghj 2003-10-18
  • 打赏
  • 举报
回复
TO 阿拉丁:
if ( tabCell.Controls[j].ID.IndexOf("CheckBox_selected")>-1 )

这句过不去.
提示:
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。
skyover 2003-10-18
  • 打赏
  • 举报
回复
我这是从Asp转移过来的老土办法,不行不要怪我哦。哈哈。不过我这里是可以用了。
skyover 2003-10-18
  • 打赏
  • 举报
回复
假设你给Checkbox设置一个ID叫做CKBOX,那么在页面里生成的代码就会是CKBOX1,CKBOX2.....

你可以这样取得:

Dim C As System.Collections.Specialized.NameValueCollection = Request.Form
Dim _CK As String = Nothing
Dim i As Integer
For i = 0 To C.Count - 1
If C.GetKey(i).IndexOf("CKBOX") <> -1 Then
_CK = _CK & "|" & C.Item(i)
End If
Next

这样就就取得了用户所选的所有Checkbox的值了,他们以|连接在一起。
hejinghj 2003-10-17
  • 打赏
  • 举报
回复
有没有人可以帮我一下呀.
现在用FOREACH 根本找不到CHECKBOX. 我该怎么判断用户已经选择了哪些CHECKBOX呀?
阿拉丁 2003-10-17
  • 打赏
  • 举报
回复
// Pickup input
for ( int i = 0;i < Table3.Rows.Count ; i++ )
{
TableRow tabRow = Table3.Rows[i];
for ( int j = 0;j < tabRow.Cells.Count ; j++ )
{
//int j = 1;
TableCell tabCell= tabRow.Cells[j];
if ( tabCell.Controls[k].ID.IndexOf("CheckBox_selected")>-1 )
{
CheckBox cbx = ( CheckBox )tabCell.Controls[k];
int iRow = Convert.ToInt32(cbx.ID.Replace("CheckBox_selected",""));
PickTable.Rows[iRow - 1]["selected"] = cbx.Checked.ToString();
PickHash.Add( cbx.ID,cbx.Checked.ToString());
break;
}
}
}
zsww 2003-10-17
  • 打赏
  • 举报
回复
给你参考一下:

<%@ Page %>
<html>
<head>
<script language="C#" runat="server">
void Button1_Click(object Source, EventArgs e) {
String s = "选择您选择了:<br>";
//通过遍历来判断哪些选项被选中
for (int i=0; i < Check1.Items.Count; i++)
{
if ( Check1.Items[ i ].Selected )
{
// 将选中的选项添加到S变量中
s = s + Check1.Items[i].Text;
s = s + "<br>";
}
}
Label1.Text = s;
}

void chkLayout_CheckedChanged(Object sender, EventArgs e) {
//设置RepeatLayout属性
if (chkLayout.Checked == true) {
Check1.RepeatLayout = RepeatLayout.Table;
}
else {
Check1.RepeatLayout = RepeatLayout.Flow;
}
}

void chkDirection_CheckedChanged(Object sender, EventArgs e) {
//设置RepeatDirection属性
if (chkDirection.Checked == true) {
Check1.RepeatDirection = RepeatDirection.Horizontal;
}
else {
Check1.RepeatDirection = RepeatDirection.Vertical;
}
}
</script>

</head>
<body>
<form runat=server>
您喜欢的城市:
<asp:CheckBoxList id=Check1 runat="server">
<asp:ListItem>大连</asp:ListItem>
<asp:ListItem>苏州</asp:ListItem>
<asp:ListItem>昆明</asp:ListItem>
</asp:CheckBoxList>
<p>

<asp:CheckBox id=chkLayout OnCheckedChanged="chkLayout_CheckedChanged"
Text="以表格的形式显示" Checked=true AutoPostBack="true" runat="server" />

<br>
<asp:CheckBox id=chkDirection OnCheckedChanged="chkDirection_CheckedChanged"
Text="纵向排列" AutoPostBack="true" runat="server" />

<p>
<asp:Button id=Button1 Text="提交" onclick="Button1_Click" runat="server"/>
<p>

<asp:Label id=Label1 font-size="10pt" runat="server"/>

</form>
</body>
</html>



-----------努力学习 不断实践 虚心讨教---------
hejinghj 2003-10-17
  • 打赏
  • 举报
回复
用CheckBoxList控件试试!!!
**********************************
可是用CheckBoxList绑定数据库后,可以实现,一行显示三个.多行显示吗?
我做了一个只能一行显示一个.显示多行.
zsww 2003-10-17
  • 打赏
  • 举报
回复
用CheckBoxList控件试试!!!

-----------努力学习 不断实践 虚心讨教---------
hejinghj 2003-10-16
  • 打赏
  • 举报
回复
还是不行呀.
if(ctl.GetType().ToString()=="System.Web.UI.WebControls.CheckBox")
我跟踪了一下,执行到这句后条件永远成立不了,好象没有找到CheckBox,我的TABLE2上有6个
CheckBox呢,可是他只循环了两遍呀.
cyp503 2003-10-16
  • 打赏
  • 举报
回复


sorry

应该改成


foreach(Control ctl in Table2.Controls)
{
if(ctl.GetType().ToString()=="System.Web.UI.WebControls.CheckBox")
{
CheckBox cb = (CheckBox)ctl;
if(cb.Checked)
Response.Write(ctl.ID.ToString() " Checked!");

}

}
hejinghj 2003-10-16
  • 打赏
  • 举报
回复
private void Button2_Click(object sender, System.EventArgs e)
{
int rowCnt;
int rowCtr;
int cellCtr;
int cellCnt;

rowCnt = int.Parse(TextBox1.Text);
cellCnt = int.Parse(TextBox2.Text);

for(rowCtr=1; rowCtr <= rowCnt; rowCtr++)
{

TableRow tRow = new TableRow();
Table2.Rows.Add(tRow);
for (cellCtr = 1; cellCtr <= cellCnt; cellCtr++)
{

TableCell tCell = new TableCell();
tRow.Cells.Add(tCell);
string prodID = rowCtr + "_" + cellCtr;
CheckBox Box = new CheckBox();
tCell.Controls.Add(Box);
Box.Text = rowCtr + ":" + cellCtr;

}
}
}


private void Button1_Click(object sender, System.EventArgs e)
{
foreach(Control ctl in this.Table2.Controls )
{
TextBox1.Text= Label1.Text;
Label1.Text=ctl.GetType().ToString();

if(ctl.GetType().ToString()=="System.Web.UI.WebControls.CheckBox")
{
CheckBox cb = (CheckBox)ctl;
if(cb.Checked)
{
Label1.Text=Label1.Text+cb.ID.ToString();
TextBox1.Text=TextBox1.Text+cb.ID.ToString();
}
}


}

}
cyp503 2003-10-16
  • 打赏
  • 举报
回复

请把代码贴一下
hejinghj 2003-10-16
  • 打赏
  • 举报
回复
通过checkbox Name循环判断那的checked的值为true.

这个具体的应该怎么写?请批教.
************************************
在Button2_Click中添加的控件,刷新后会消失的
我现在已经改成是在页面加载时添加控件,刷新后还会消失吗?我该如何做?

非常感谢各位的帮助.

icyer 2003-10-16
  • 打赏
  • 举报
回复
在Button2_Click中添加的控件,刷新后会消失的
houlinghouling 2003-10-16
  • 打赏
  • 举报
回复
通过checkbox Name循环判断那的checked的值为true.
hejinghj 2003-10-16
  • 打赏
  • 举报
回复
循环ID? 什么意思? 请详细解释一下好吗?
yuhang001 2003-10-16
  • 打赏
  • 举报
回复
循环ID
hejinghj 2003-10-15
  • 打赏
  • 举报
回复
cyp503(谁怕?一蓑烟雨任平生) 用你的方法出现以下错误信息:
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.InvalidCastException: 指定的转换无效。

这是怎么回事?
加载更多回复(2)
vf6.0,要考二级没系统的下哈 Microsoft Visual FoxPro 6.0 for Windows 的常见问题 这些是有关 Microsoft Visual FoxPro 最常见的问题。在您求助 Microsoft 产品支持服务之前,请先查阅这张列表。 若想打印这些附注,请从“文件”菜单中选择“打印”命令。此文档分为以下四部分: --------------------------------------------------------------------- 部分 1. 技术支持与市场 部分 2. Visual FoxPro 6.0 新增功能 部分 3. 从其他版本的 FoxPro 和 Visual FoxPro 中移植 部分 4. Visual FoxPro 常见问题 --------------------------------------------------------------------- 部分 1. 技术支持与市场 问题 1-1: 从何处可以获得产品的更新版本? 答案: 在 Visual FoxPro 的 Web 站点上即可获得产品的更新信息,其中包括有关 Service Pack 和更新的示例、向导及其他代码的信息,该站点的网址为: www.microsoft.com/vfoxpro 请定期查看该网站,以便下载产品的最新版本。 问题 1-2: 从何处可以得到有关 Visual FoxPro 的详细资料? 答案: 通过 Microsoft Visual FoxPro Web 站点是随时获得各种最新产品发布信息的最佳途径。在此站点上不仅有新的产品公告,而且还提供了产品的更新信息、技术文章、白皮书、专业开发人员设计的优秀示例、会议公告、以及与其他许多 FoxPro web 站点的各种链接。 问题 1-3: 如何获得技术支持,以及如何报告软件错误? 答案: Microsoft Visual FoxPro Web 站点已经链接到了多种联机支持选项,其中包括覆盖面广阔的有关所有产品 Microsoft Knowledge Base(Microsoft 知识库)。您还可以阅读一份有关常见问题的清单。除联机支持之外,还可以直接通过电话获得技术支持。“帮助”菜单中的选项可列出技术支持的电话号码。这些电话号码也可用于报告产品中的错误。 问题 1-4. 什么是 Knowledge Base?如何使用它? 答案: Knowledge Base 是内容广泛的论文集,覆盖了如何使用产品的各种特性、已知的软件错误及其解决方案或回避的方法、以及其他有助于使用各种 Microsoft 产品的有用信息。通过以下站点可访问整个 Knowledge Base: support.microsoft.com 问题 1-5: 是否会有 Visual FoxPro 6.0a? 答案: Microsoft 公司一向承诺为用户提供高质量的产品。如果确实需要,我们将提供 Visual FoxPro 6.0 的错误修订版。但是,修订版不会使用 6.0a 版的形式。Visual FoxPro 6.0 中任何错误的修正都将包含在 Visual Studio Service Pack 中。同时还会在 Visual FoxPro 的 www.microsoft.com/vfoxpro 或 Visual Studio 的www.microsoft.com/vstudio 的 Web 站点上发布修订公告。 问题 1-6: Microsoft 公司为应用程序的开发提供了一些优秀的解决方案。怎样才能知道应该向客户推荐和使用哪种产品? 答案: 在选择适用某项任务的产品时,需要考虑多方面的因素。Microsoft Visual FoxPro web 站点上有一份优秀的策略背景论文,它比较了 Visual FoxPro、Visual Basic、SQL Server 和 Access 等 Microsoft 产品之间的不同。 问题 1-7: 哪里可以找到 Visual FoxPro 的使用示例? 答案: Visual FoxPro 6.0 产品中带有丰富的示例,其中有一些是针对 6.0 版特有功能的新示例。与 Visual FoxPro 以前的版本不同,这些示例将与所有 Visual Studio 示例安装在一起。您必须运行 MSDN Library 的“自定义”安装来安装这些示例。在 Visual FoxPro 中可使用新的 HOME(2) 函数方便地找到已安装示例的位置。 除了产品中所自带的示例外,Microsoft Visual FoxPro web 站点还将经常提供新的示例。

62,046

社区成员

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

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

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

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