【问题标题】:Programmatically check a checkbox以编程方式检查复选框
【发布时间】:2025-12-18 13:45:01
【问题描述】:

我正在从数据库中读取值(布尔值),如果为真,我希望它选中一个复选框,如果为假,则保持未选中该复选框。线条如下所示:cblEnergy.Items.FindByValue(1).Selected = track_usage

在这种情况下,track_usage 是一个布尔值。

这种方式实际上并没有像我想要的那样在复选框中创建复选标记。最好的方法是什么?

【问题讨论】:

  • 发生了你没想到的事情?
  • 你的 track_usage = false 吗? :-)
  • 我希望复选框被选中并被视为已为程序的其他部分选中。我希望通过将其设置为 true,它会是 true,但事实并非如此。
  • @Steve -> 不,这不是假的
  • FindByValue 默认查找字符串值。传递它 1 可能不会给你你正在寻找的结果。 msdn.microsoft.com/en-us/library/…

标签: asp.net vb.net checkbox


【解决方案1】:

如果 cb1Energy 是 CheckBoxList 那么你会使用:

  Dim li_chkbox = cblEnergy.Items.FindByValue("1")
  If (li_chkbox != null) then
     li_chkbox.Selected = track_usage
  End if

【讨论】:

  • 我看不出这与我所拥有的有什么不同...需要解释一下吗?
  • 这完全取决于您是否可以告诉我您在<asp/>中编写的代码
  • 老实说,所有代码都发布在 pastebin 上。我的 VB 代码:pastebin.ca/2149545 HTML:pastebin.ca/2149566
  • 好吧,现在我看到了新链接 149566
  • ` ` <asp:ListItem Value="1"> Track electricity usage, fuel usage, and natural gas usage and share data with employees</asp:ListItem> <asp:ListItem Value="2"> Develop a policy/procedure strategy to conserve energy/increase renewable energy use</asp:ListItem> 您确实在 ListItem 值中使用了字符串 - "1""2"。尝试更改,看看它是否有效。