我有一个包含几列的GridView。其中一列是按钮。它位于模板字段中,如下所示:
<asp:TemplateField>
<ItemTemplate>
<asp:Button ID="btnApply" Text="View Details" CssClass="viewdetails" runat="server"/>
</ItemTemplate>
</asp:TemplateField>
我的JQuery代码如下:
<script type="text/javascript">
$(document).ready(function() {
$('.viewall, .viewdetails').click(function() {
alert('Must be a member to view all');
});
});
</script>
当我第一次访问该页面并单击查看详细信息按钮时,会弹出警告,但在此之后,如果我单击任何其他视图详细信息按钮,则在刷新页面之前不会弹出该警告。 “全部查看”按钮始终显示该消息,因为单击该消息时,页面将刷新。
几个笔记。 View Details按钮位于asp.net GridView中,GridView位于asp.net UpdatePanel内。
此外,由于view all和viewdetails调用相同的消息,有没有办法将它们组合成一个click事件,例如$('。viewall .viewdetails')。click(....... < / p>
如果我删除更新面板,它可以工作,但每次我单击查看全部或查看详细信息,我都会闪烁,所以我添加了一个返回false;这会阻止闪烁,但是,这会阻止用户在确实登录时进入“成员”页面。如果我将返回false关闭并且他们已登录,则消息仍会弹出,然后将其带到成员页面。这显然不应该发生,但我不知道如何处理它。基本上事件应该是:
如果用户未登录并单击“查看全部”或“查看详细信息”按钮,则会显示一条消息,说明他们必须登录或成为会员。
如果用户已登录并单击“查看全部”或“查看详细信息”按钮,则将其重定向到“成员”页面。 “查看全部”和“查看详细信息”都有服务器端单击事件,如果他们已登录,则会对成员页面执行Response.Redirect。
答案 0 :(得分:2)
在这些情况下,您需要取消click
事件......
$(document).ready(function() {
$('.viewall').click(function(e) {
alert('Must be a member to view all');
e.preventDefault();
});
$('.viewdetails').click(function(e) {
alert('Must be a member to view all');
e.preventDefault();
});
});
您可以使用逗号分隔多个选择器...
$(".selector1, .selector2").click(function() { ... });