【发布时间】:2013-05-23 08:27:55
【问题描述】:
我有一个带有复选框(类别过滤器)的类别listview。但我做了一个自定义复选框(带有css的linkButton是我的复选框)。
<asp:LinkButton CssClass="checkBox" runat="server">
.checkbox {background: url('/style/images/checkbox.png') no-repeat top left;width:9px;height:9px;text-decoration:none;
.checked {background: url('/style/images/selected_checkbox.png') no-repeat top left;}
并且在 jQuery 中的链接按钮上准备好文档(我的自定义复选框单击)我 更改 css(添加选中的类)
$(".filter-select .checkbox").click(function () {
if ($(this).hasClass('checked'))
$(this).removeClass('checked');
else $(this).addClass('checked');
return false;
});
一切正常,但是当我想处理 listview itemCommand 上的已检查 chekcbox 时,itemCommand 不会触发...如果我删除 jquery 调用,一切正常,所以我认为 jquery 会阻塞或阻止 itemCommand 在单击链接按钮时触发。
但是我需要调用这个 itemCommand,我该怎么办?我是否应该使用 jQuery 删除/更改拥有此复选框的方式。还是我错过了什么...我也尝试过 OnClientClick="this.disabled='true';" 我看到的是其他帖子,但是没有结果..
【问题讨论】:
-
我认为在这种情况下您应该手动调用 dopostback() .. 因为您已经拦截了 asp.net 生成代码的正常功能.. 或删除
return false -
如果我删除 return false,itemCommand 被触发,但 linkButton 控件的 css 没有改变......也许我应该考虑用别的东西改变这个 jQuery CSS 思考 - 也许我应该改变这个在 itemCommand 中而不是在 jQuery 中的 css
-
hmm... 实际上,如果您不使用 ajax,那么当 itemCommand 被触发然后当它返回时,它会重新呈现您的整个页面。在这种情况下,没有机会应用上述样式。
-
您应该在 $(document).ready() 中编写代码并将样式应用于所需的复选框。那么它可以解决你的问题。如果您使用 ajax 发布到服务器,上述解决方案将起作用。在整页 postback() 中,这根本不起作用。