问题

我已经在stackoverflow上阅读了关于复选框,并将它们的值设置为1,以使它们被检查,但在我的情况下似乎不起作用.我有一个数据绑定器eval表达式,当我的复选框应该被检查时,评估为1,并且我已经验证了生成的页面至少有一个输入复选框,值= 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") %>' />

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

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



解决方法

根据 W3C规范:

Checkboxes (and radio buttons) are on/off switches that may be toggled by the user. A switch is "on" when the control element's checked attribute is set.

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

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

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

所以,可能的解决方案是:

<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 "";
  }
}



相关问题推荐