![](/img/trans.png)
[英]The server tag is not well formed. html runat=“server” and data-target=“#<% Eval(”Abbreviation“)%>”
[英]The server tag is not well formed.(databinder.eval)
我正在尝试使用以下代码。
<asp:DataGrid ID="Grid" runat="server" DataKeyField="KeyID" CssClass="grid"
...
<asp:CheckBox runat="server" ID="checkBox-<%#DataBinder.Eval(Container.DataItem,"KeyID")%>" AutoPostBack="false"></asp:CheckBox>
当我运行代码时,我得到以下错误:
Error 25 The server tag is not well formed.
注意:这没有runat =“server”。 这个问题的补救措施是什么?
您不需要设置CheckBox的ID来执行您想要执行的操作(更改背景颜色)。 你的CheckBox应该是这样的(如果你想显示它,我将KeyID
添加为文本值......或者如果你只想要复选框,你可以删除它):
<asp:CheckBox runat="server" ID="checkbox" Text='<%# Eval("KeyID") %>' AutoPostBack="false"></asp:CheckBox>
现在您的复选框将呈现如下内容:
<input id="MainContent_Grid_checkbox_0" type="checkbox" name="ctl00$MainContent$Grid$ctl02$checkbox" /><label for="MainContent_Grid_checkbox_0">Value of KeyID</label>
由于所有名称都以“复选框”结尾,因此您可以对名称以“复选框”结尾的元素应用更改事件的函数。 您没有指定这是一个JavaScript问题,或者如果您正在使用jQuery ...这个答案使用jQuery :
<script>
$('input[name$="checkbox"]').change(function () {
if ($(this).is(':checked')) {
$(this).parent().css('background-color', 'yellow');
}
else {
$(this).parent().css('background-color', 'white');
}
});
</script>
这将决定是否选中复选框,如果是,它将设置其父级的背景颜色(它所在的<td>
,在DataGrid渲染的HTML中),具体取决于值。
同样,您可以转到下一个parent()
并突出显示整行。
资源: jQuery选择器
OnCheckedChanged - 您将在后面的代码中处理的事件,而不是JavaScript中的事件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.