在这种情况下,复选框值='1'的作用是什么?

Ton*_*son 2 html data-binding checkbox

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

我错过了什么?我试过设置checked属性,但是甚至check =''计为已选中,所以无论如何我都看不到为已选中和未选中的复选框执行此操作.

这是html似乎不起作用.

<input type='checkbox' class="datacell" id='603' 
style='text-align: center' value='1' />
Run Code Online (Sandbox Code Playgroud)

这是我在中继器中为主要输入元件设置的数据移动器

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

其他证据只是确保正确的单元格是复选框,并且单元格的对齐以某种方式工作(复选框对齐中心,数字东西对齐,其他东西对齐左边.)

编辑:那么如何通过数据绑定表达式实现这一点,这就是我的困境.

And*_*are 12

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

<input type="checkbox" class="datacell" id="603"
style="text-align: center" checked="checked" />
Run Code Online (Sandbox Code Playgroud)

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

<input type="checkbox" class="datacell" id="603"
style="text-align: center"/>
Run Code Online (Sandbox Code Playgroud)


Chr*_*tal 11

根据W3C规范:

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

因此,设置checkbox属性的任何值都将选中该复选框.

  • 检查="选中"
  • 检查="假"
  • 检查="真
  • 检查

所有标记复选为已选中.您需要完全删除该属性以清除该复选框.

那么,一个可能的解决方案是:

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

代码隐藏

protected string isChecked(int testResult) {
  if (testResult == 1) {
    return "checked='checked'";
  } else {
    return "";
  }
}
Run Code Online (Sandbox Code Playgroud)