为什么取不到checkbox的值

月光下的土豆 2008-12-24 03:41:37
前后台代码都在这里,请帮我解决谢谢
<form id="form1" runat="server">
<table border="0" align="center" cellpadding="0" cellspacing="0" class="tableCol">
<tr>
<td height="24" style="padding-left:8px;padding-top:3px;"><img src="../Images/green_plus.gif" width="16" height="16" align="absmiddle" /> <asp:Label ID="comtitle" runat="server" Text="Label">公司设置</asp:Label></td>
</tr>
</table>
<asp:Repeater ID="comList" runat="server">
<HeaderTemplate>
<table width="99%" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#B4D7EB" style="margin-top:3px;">
<tr>
<th width="5%" height="23" bgcolor="#DFEEF5">序号</th>
<th width="75%" bgcolor="#DFEEF5">公司名称</th>
<th width="12%" align="center" bgcolor="#DFEEF5">操作</th>
<th width="8%" align="center" bgcolor="#DFEEF5">选择</th>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td height="23" bgcolor="#FFFFFF" style="font-weight:bold; font-family:Arial; text-align:center;"><%# Container.ItemIndex + 1 %>
</td>
<td bgcolor="#FFFFFF"style="padding-left:6px;text-align:left"><%#DataBinder.Eval(Container.DataItem, "SFL_Org_Name")%></td>
<td align="center" bgcolor="#FFFFFF"><a href="orgEdit.aspx?ID=<%# DataBinder.Eval(Container.DataItem,"SFL_Org_ID") %>">修改</a> | <a href="delEdit.aspx?ID=<%# DataBinder.Eval(Container.DataItem,"SFL_Org_ID") %>">删除</a></td>
<td bgcolor="#FFFFFF" align="center"><asp:CheckBox ID="Chk" runat="server" /></td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
<table width="99%" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#b4d7eb" style="margin-top:3px;">
<tr>
<td height="24" bgcolor="#eff7ff" style="font-family:Arial;text-align:left;padding-left:10px;">
<asp:Button ID="Button2" runat="server" Text="删除选定" CssClass="Button" OnClick="Button2_Click1" /></td>
</tr>
</table>
</form>




public partial class Hr_Default : System.Web.UI.Page
{
BLL.main Org = new BLL.main();
Model.Org sqlstr = new Model.Org();
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
comDatabind();
}
}
public void comDatabind()
{
sqlstr.sqlOrg = "SELECT * FROM SFL_Org";
DataSet ds = Org.getOrg(sqlstr);
comList.DataSource = ds;
comList.DataBind();
}
protected void Button2_Click1(object sender, EventArgs e)
{
StringBuilder sb = new StringBuilder();
foreach (RepeaterItem item in comList.Items)
{
CheckBox check = (CheckBox)item.FindControl("Chk");
if (check != null)
{
if (check.Checked == true)
{
sb.Append(check.Checked.ToString());
sb.Append(",");
}
}
}
Response.Redirect(sb.ToString());
}
}
...全文
246 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
月光下的土豆 2008-12-24
  • 打赏
  • 举报
回复
谢谢大家
sprc_lcl 2008-12-24
  • 打赏
  • 举报
回复
<asp:CheckBox ID="Chk" runat="server" ToolTip="<%# DataBinder.Eval(Container.DataItem,"SFL_Org_ID") %>" />

sb.Append(check.ToolTip);
wangkun9999 2008-12-24
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 Mpt_hi 的回复:]
我是想批量删除啊。有true有false是不行的。

<asp:CheckBox ID="Chk" runat="server" />

这个控件还须要付值吗

我看在GridView就是 <asp:CheckBox ID="Chk" runat="server" />

这样啊
[/Quote]
Repeater没有DataKeyField属性,所以得另外找个隐含控件来存放ID,10楼已经说过方法了。

niitnanfeng 2008-12-24
  • 打赏
  • 举报
回复
这种问题你设置个断点调试调试就知道了。
月光下的土豆 2008-12-24
  • 打赏
  • 举报
回复
我不是喜欢用GridView
月光下的土豆 2008-12-24
  • 打赏
  • 举报
回复
我是想批量删除啊。有true有false是不行的。

<asp:CheckBox ID="Chk" runat="server" />

这个控件还须要付值吗

我看在GridView就是<asp:CheckBox ID="Chk" runat="server" />

这样啊
sprc_lcl 2008-12-24
  • 打赏
  • 举报
回复
这个结果不就是正确的吗?有true有false
月光下的土豆 2008-12-24
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 sprc_lcl 的回复:]
protected void Button2_Click1(object sender, EventArgs e)
{
StringBuilder sb = new StringBuilder();
foreach (RepeaterItem item in comList.Items)
{
CheckBox check = (CheckBox)item.FindControl("Chk");
if (check != null)
{
sb.Append(check.Checked.ToString());
sb.Append("a,");

[/Quote]

Falsea,Falsea,Falsea,Falsea,Truea,Truea, 这是结果
sprc_lcl 2008-12-24
  • 打赏
  • 举报
回复
protected void Button2_Click1(object sender, EventArgs e)
{
StringBuilder sb = new StringBuilder();
foreach (RepeaterItem item in comList.Items)
{
CheckBox check = (CheckBox)item.FindControl("Chk");
if (check != null)
{
sb.Append(check.Checked.ToString());
sb.Append("a,");
}
}
Response.Write(sb.ToString());
}
把你的Button2_Click1改为上面的,然后哪个测试结果过来?
CutBug 2008-12-24
  • 打赏
  • 举报
回复
你不复制怎么取得你要删除的键值呢?
<asp:CheckBox ID="Chk" runat="server" ToolTip='<%# Eval("ID") %>' />

StringBuilder sb = new StringBuilder();
foreach (RepeaterItem item in RList.Items)
{
CheckBox check = (CheckBox)item.FindControl("Chk");
if (check != null)
{
if (check.Checked)
{
sb.Append(check.ToolTip);
sb.Append(",");
}
}
}
Response.Write(sb.ToString());
chenguang79 2008-12-24
  • 打赏
  • 举报
回复
check.Checked.ToString()这个是没有值的,楼主应判断一下,被复选框被选中后,这一行的其它列比如ID列是什么因为check.Checked.ToString()是不会有值的
wangkun9999 2008-12-24
  • 打赏
  • 举报
回复

if (check.Checked) sb.Append('true,');
月光下的土豆 2008-12-24
  • 打赏
  • 举报
回复
结果是",,,,,,,,"
sprc_lcl 2008-12-24
  • 打赏
  • 举报
回复
提醒一下,按你发的这个代码,你现在先选中再点按钮有结果出来吗?比如“,,,"
月光下的土豆 2008-12-24
  • 打赏
  • 举报
回复
是的.

<asp:CheckBox ID="Chk" runat="server" />

这个控件还须要付值吗
wangkun9999 2008-12-24
  • 打赏
  • 举报
回复
这句if (check.Checked == true):只当chk选中以后才取得到值,不选中没值
supremeholy 2008-12-24
  • 打赏
  • 举报
回复
Up!
Lcindep110 2008-12-24
  • 打赏
  • 举报
回复
你CheckBox 没有值呀.
qinhl99 2008-12-24
  • 打赏
  • 举报
回复
没看出哪有问题

62,046

社区成员

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

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

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

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