我正在尝试编写privilige组复选框。就像是 this
到目前为止,我制作了一个页面,我把我做的空控制看起来像这样
<fieldset>
<legend><asp:CheckBox ID="GroupName" runat="server" TextAlign="Left" text="test" onclick="checkAll()"/></legend>
<span> <!--class="filterTableSpan"-->
<asp:Table ID="priviligeTable" runat="server" CssClass="groupTable">
</asp:Table>
</span>
</fieldset>
然后我填写priviligeTable
CheckBox privilCheck = new CheckBox();
privilCheck.ID = this.ID + "_" + privName; //ID of group
TableCell tc = new TableCell();
tc.ID = this.ID + "_tc" + privName;
tc.Controls.Add(privilCheck);
TableRow tr = new TableRow();
tr.ID = this.ID + "_tr" + privName;
tr.Cells.Add(tc);
this.priviligeTable.Rows.Add(tr);
现在我想使用javascript选择all,取消选中和中间状态到Privilige Group Name复选框,但我不知道如何访问动态生成的复选框。此外,我是一个javascript的新手。如果有人能告诉我解决这个问题的方法,或者说我应该通过努力解决这个问题的方向,我会很高兴。
答案 0 :(得分:0)
这些角色是否来自数据库中的列表?如果是这样,我的本能就是避免使用而是使用。 Gridview为您提供了更多内置功能,包括可以随时创建所有复选框的模板。
但是,你所做的也可以。
我建议使用jQuery - 它会让您的生活变得更轻松,并确保您的代码适用于所有浏览器。
然后你需要这样的东西。这将打开或关闭所有复选框。
function checkAll() {
// Find all the checkboxes in the table
var $checkboxes = $('table.groupTable input[type=checkbox]');
if($(this).is(':checked')){
// Check them
$checkboxes.attr("checked","checked");
} else {
// Uncheck them
$checkboxes.removeAttr("checked",);
}
}
我认为应该这样做。不确定你的意思是什么?中州&#39;虽然。它们是否经过检查。
请不要忘记,在回发时,您需要重新创建所有复选框才能阅读其内容。