【发布时间】:2011-01-20 16:04:22
【问题描述】:
"")" />
这不起作用,错误说: 解析器错误消息:服务器标签不能包含 构造。
有什么办法可以解决这个问题吗? 谢谢;)
【问题讨论】:
-
为什么你有 runat="server" 在输入?你不应该使用 asp 控件吗?
-
这是因为我需要在代码行为中从中获取值,而 Asp:Checkbox 让我与来自 ajax 的更新面板发生冲突。
"")" />
这不起作用,错误说: 解析器错误消息:服务器标签不能包含 构造。
有什么办法可以解决这个问题吗? 谢谢;)
【问题讨论】:
你可以像这样使用 jQuery 来做到这一点:
var control = '#<%= chbSAveState.ClientID%>';
$(control).change(function(){
SaveState($(this).id);
});
【讨论】:
您调用的是 JS 事件 (onchange),而不是服务器事件,因此只需传入 this.id。
<input type="checkbox" id="chbSaveState" runat="server" tabindex="3"
onchange="SaveState(this.id)" />
需要明确的是,this.id 和 <%=chbSaveState.ClientID%> 在这种情况下将返回相同的值。由于您在 chbSaveState 的事件上调用它,因此您可以在此处使用易于访问的 JS 属性,而不是 <%=chbSaveState.ClientID%>,这需要服务器返回服务器为该控件生成的 id。
【讨论】:
我对服务器端控件没有太多经验,但也许:
<input type="checkbox" id="chbSaveState" runat="server" tabindex="3"
onchange="SaveState(chbSaveState.ClientID)" />
【讨论】: