“CheckAll"复选框只适用于asp:Repeater的第一页.如何修复
"CheckAll" checkbox works only with the first page of asp:Repeater. How to fix?
我有一个带有复选框的中继器:
<asp:Repeater ID="rpt_users" runat="server" OnItemCommand="rpt_users_ItemCommand" OnItemDataBound="rpt_users_ItemDataBound">
<HeaderTemplate>
<table id="usersTable">
<tr>
<th rowspan="2">All<br /><asp:CheckBox runat="server" ID="checkAll" OnCheckedChanged="checkAll_CheckedChanged"/></th>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr class="c0">
<td><asp:CheckBox ID="CheckSelect" runat="server" /></td>
</tr>
</ItemTemplate>
</asp:Repeater>
下面是我放置在Repeater控件后面的一个脚本:
<script type="text/javascript">
var repeater1Control = document.getElementById('<%= rpt_users.ClientID %>');
$('input:checkbox[id$=checkAll]', repeater1Control).click(function (e) {
if (this.checked) {
$('input:checkbox[id$=CheckSelect]', repeater1Control).attr('checked', true);
}
else {
$('input:checkbox[id$=CheckSelect]', repeater1Control).removeAttr('checked');
}
});
$('input:checkbox[id$=CheckSelect]', repeater1Control).click(function (e) {
//To uncheck the header checkbox when there are no selected checkboxes in itemtemplate
if ($('input:checkbox[id$=CheckSelect]:checked', repeater1Control).length == 0) {
$('input:checkbox[id$=checkAll]', repeater1Control).removeAttr('checked');
}
//To check the header checkbox when there are all selected checkboxes in itemtemplate
else if ($('input:checkbox[id$=CheckSelect]:checked', repeater1Control).length == $('input:checkbox[id$=CheckSelect]', repeater1Control).length) {
$('input:checkbox[id$=checkAll]', repeater1Control).attr('checked', true);
}
});
不幸的是,它只在中继器的第一页起作用。如果我转到第二页或更远的地方,那么当我按下标题中的"CheckAll"复选框时,什么也没有发生。如何解决这个问题?
try this
(function($){
var bindEvents = function(){
// bind events here;
var repeater1Control = document.getElementById('<%= rpt_users.ClientID %>');
$('input:checkbox[id$=checkAll]', repeater1Control).click(function (e) {
if (this.checked) {
$('input:checkbox[id$=CheckSelect]', repeater1Control).attr('checked', true);
}
else {
$('input:checkbox[id$=CheckSelect]', repeater1Control).removeAttr('checked');
}
});
$('input:checkbox[id$=CheckSelect]', repeater1Control).click(function (e) {
//To uncheck the header checkbox when there are no selected checkboxes in itemtemplate
if ($('input:checkbox[id$=CheckSelect]:checked', repeater1Control).length == 0) {
$('input:checkbox[id$=checkAll]', repeater1Control).removeAttr('checked');
}
//To check the header checkbox when there are all selected checkboxes in itemtemplate
else if ($('input:checkbox[id$=CheckSelect]:checked', repeater1Control).length == $('input:checkbox[id$=CheckSelect]', repeater1Control).length) {
$('input:checkbox[id$=checkAll]', repeater1Control).attr('checked', true);
}
});
};
// initial load
$(document).ready( bindEvents);
// every async load by update panel
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(bindEvents);
})(jQuery);
相关文章:
- 如何为AngularJS制作智能表中第一页和最后一页的跳过按钮
- 在第一页加载时隐藏字段,而不是在php发布之后
- JS文件未加载第一页加载
- 如何在第一页加载时使jQuery弹出消息
- 如何自动从一个页面移动到另一个页面,然后回到 html 表格中分页的第一页
- jquery手机应用程序的第一页必须是index.html
- ngTable筛选器仅适用于第一页
- Javascript(Adobe Acrobat XI)从表单第一页的输入答案填充第二页表单
- 第一页加载时,有角度的ng网格固定标题不是静态的
- 自定义JQUERY未在分页页面上加载(第一页除外)
- 链接在第一页加载时瞬间变蓝
- 使用turn.js I'I’我正试图在加载时把角落的第一页翻进去
- 区分剑道网格上一页/下一页点击与转到第一页/最后一页点击事件
- 使用javascript从另一页(第三页)刷新一页(第一页)
- setAutoGrow()只适用于应用程序的第一页,这有什么错
- 复选框只适用于第一页-数据表、轨道
- jQuery 移动页面显示事件未在第一页上触发
- 为什么 Java 脚本单击事件在第一页加载时没有触发
- 我的jquery代码正在运行第一页,但没有运行第二页
- “CheckAll"复选框只适用于asp:Repeater的第一页.如何修复