【问题标题】:ASP:Checkbox server tag not well formedASP:复选框服务器标记格式不正确
【发布时间】:2015-10-15 04:04:10
【问题描述】:

我有这行代码:

 <asp:CheckBox runat="server" id="chkSelected"  Checked='<%# Not IsDBNull(Eval("EntityID"))%>' onchange="AssignValues('<%# Eval("EntityID")%>', '<%# Eval("id") %>', document.getElementById(this)  );" />

它不喜欢我为AssignValues(...) 设置的参数,但使用Checked='&lt;%# Not IsDBNull(Eval("EntityID"))%&gt;' 就可以了

我在这里做错了什么?

编辑:最后一个参数应该是控件的 .ClientID...我知道document.getElementById() 在那里不起作用。

【问题讨论】:

  • 你可以用this代替document.getElementById(this)
  • 是的,这不是它所抱怨的:(
  • 您的某些记录似乎没有 entityid --> 为空。你能改成 IF(IsDBNull( Eval("EntityID")), -1, Eval("EntityID"))
  • 那部分工作得很好......就像我说的,它不喜欢AssignValues签名的参数......哦,我明白你在说什么
  • 也不喜欢

标签: asp.net checkbox


【解决方案1】:

最后一个参数应该是这样的

onchange='<%# String.Format("AssignValues(\"{0}\", \"{1}\", \"{2}\");", Eval("EntityID"), Eval("id"), this) %>'

在您的情况下,问题与多个 eval 和多个引号有关。但是,可以使用单个 # 符号进行多个 Eval 调用

【讨论】:

  • 下次我必须做类似的事情时我会试试这个。现在,我最终使用了自定义属性——项目需求发生了变化,因此我不需要客户端的 javascript 调用。这让它变得简单了很多。
猜你喜欢
  • 1970-01-01
  • 2023-03-19
  • 1970-01-01
  • 2013-07-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-15
相关资源
最近更新 更多