2

我一直在阅读有关复选框的 stackoverflow 并将它们的值设置为 1 以使它们被选中,但在我的情况下它似乎不起作用。我有一个 databinder eval 表达式,当我的复选框应该被选中时计算为 1,并且我已经验证生成的页面至少有一个 value=1 的输入复选框未显示为选中状态。

我错过了什么?我尝试只设置选中的属性,但即使选中=''也算作选中,所以无论如何我都看不到使选中和未选中的复选框都可以工作。

这是似乎不起作用的html。

<input type='checkbox' class="datacell" id='603' 
style='text-align: center' value='1' />

这是我在中继器中为主要输入元素设置的数据绑定器

<input type='<%# Eval("InputType") %>' class="datacell" 
id='<%# Eval("CellID") %>' style='<%# Eval("InputAlign") %>' 
value='<%# Eval("TestResult") %>' />

其他评估只是确保正确的单元格是复选框,并且单元格的对齐方式以某种方式工作(复选框对齐中心,数字内容右对齐和其他内容左对齐。)

编辑:那么如何使用数据绑定表达式来做到这一点,这是我的困境。

4

7 回答 7

12

将复选框设置为选中的正确方法是:

<input type="checkbox" class="datacell" id="603"
style="text-align: center" checked="checked" />

并且呈现未选中复选框的正确方法是(请注意,缺少整个checked属性):

<input type="checkbox" class="datacell" id="603"
style="text-align: center"/>
于 2009-02-27T13:31:55.290 回答
12

根据W3C 规范

复选框(和单选按钮)是可以由用户切换的开/关开关。当设置了控制元素的选中属性时,开关处于“打开”状态。

因此,为复选框属性设置任何值都会选中复选框。

  • 检查=“检查”
  • 选中=“假”
  • 选中=“真”
  • 检查

都会将复选框标记为选中。您需要完全删除该属性才能清除该复选框。

因此,对您来说可能的解决方案是:

<input type='<%# Eval("InputType") %>' class="datacell" 
id='<%# Eval("CellID") %>' style='<%# Eval("InputAlign") %>' 
<%# isChecked((int)Eval("TestResult")) %> />

代码隐藏

protected string isChecked(int testResult) {
  if (testResult == 1) {
    return "checked='checked'";
  } else {
    return "";
  }
}
于 2009-02-27T13:38:28.270 回答
1

这很简单:

<input type="checkbox" value="whatever" checked> Create a checked box
<input type="checkbox" value="whatever"> Creates an unchecked box
于 2009-02-27T13:32:45.660 回答
1

您应该使用复选框的 checked="checked" 属性将其呈现为选中状态。value 属性是将提交给服务器的值,以防在提交表单时选中复选框。

于 2009-02-27T13:33:49.700 回答
0

你还没有给复选框一个名称属性!

于 2009-02-27T13:46:35.317 回答
-1

这是我所做的:

于 2009-02-27T13:47:34.113 回答
-2

checked="checked"使用属性检查复选框

例子:

<p>Please select every sport that you play.</p>
Soccer: <input type="checkbox" checked="checked"
 name="sports" value="soccer" />
<br />
Football: <input type="checkbox" 
name="sports" value="football" />
<br />
Baseball: <input type="checkbox" 
name="sports" value="baseball" />
<br />
Basketball: <input type="checkbox" checked="checked" 
name="sports" value="basketball" />
</p>

http://www.tizag.com/htmlT/htmlcheckboxes.php

于 2009-02-27T13:32:48.283 回答