ASP.NET – 设置CheckBox的CssClass
以下代码
((CheckBox)e.Row.FindControl("exportCb")).CssClass = "enabledExport";
创建html
对于asp.net gridview列
我需要使用jquery
$('.enabledExport').toggle()
选中/取消选中(作为切换)复选框。 因为CssClass
在上标记,所以代码将尝试切换
而不是
。 我怎样才能解决这个问题?
我不介意解决方案是否在jquery或asp.net方面,只要它有效。 我喜欢它,如果代码只是标记输入像它应该…
如果您要显示/隐藏复选框,可以执行以下操作:
$('.enabledExport input:checkbox').toggle()
但我认为你要做的是:
var $checkbox = $('.enabledExport input:checkbox'); $checkbox.attr("checked", !$checkbox.is(":checked"));
最简单的解决方案是以这种方式设计jQuery选择器,它将选择位于span类的子项“enabledExport”的复选框。 在这种情况下,它看起来像:
jQuery('.enabledCheckbox > :checkbox').toggle()
要么
jQuery(':checkbox', '.enabledCheckbox').toggle()
您需要使用正确的cssclass并在其前面加上一个点。 所以你已经选择了你的跨度。 然后进入该范围并选中复选框。 这是绑定click事件:
$(".enabledExport").click(function(){ var box = $(this).children(":checkbox"); box.is(":checked") ? box.removeAttr("checked") : box.attr("checked", "checked"); });
这是点击:
$(".enabledExport").click();
我正在使用MasterSite页面,因此复选框元素id将ContentPlaceHolder信息添加到复选框ID中。 当页面加载时,我正在分配一个自定义属性来帮助查找元素(也可以使用foreach语句完成)。 这是后面的自定义属性代码:
protected void Page_Load(object sender,EventArgs e)
{
if (!IsPostBack) { chkTxa.Attributes.Add("clientID", "chkTxa"); chkTxx.Attributes.Add("clientID", "chkTxx"); }
}
我的两个复选框ID是:chkTxa和chkTxx。 我设置AutoPostBack =“False”因为我希望客户端负责复选框切换。 由于复选框位于html表中,因此浏览器将复选框包装在标记中。 这需要您做额外的工作才能找到复选框。 jQuery代码是这样的:
$(document).ready(function(){
var chkTxa; var chkTxx; // dig into the object to find the checkbox chkTxa = $("[clientID=chkTxa]").children(":checkbox"); chkTxx = $("[clientID=chkTxx]").children(":checkbox"); $(chkTxa).click(function () { if (!chkTxa.is(":checked")) { chkTxa.removeAttr("checked"); } else { chkTxx.removeAttr("checked"); } }); $(chkTxx).click(function () { if (!chkTxx.is(":checked")) { chkTxx.removeAttr("checked"); } else { chkTxa.removeAttr("checked"); } }); });
希望有人发现这很有用。
艾伦
$(".enabledExport+input").toggle()
应该可以解决问题。