是否在asp.net GridView中使用按钮第二次触发Jquery单击事件?

是否在asp.net GridView中使用按钮第二次触发Jquery单击事件?,asp.net,jquery,Asp.net,Jquery,我有一个带有几列的GridView。其中一列是按钮。它位于模板字段中,如下所示: <asp:TemplateField> <ItemTemplate> <asp:Button ID="btnApply" Text="View Details" CssClass="viewdetails" runat="server"/> </ItemTemplate> </asp:TemplateField> 我的JQuery代码如下:

我有一个带有几列的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>

$(文档).ready(函数(){
$('.viewall.viewdetails')。单击(函数(){
警报('必须是成员才能查看所有');
});
});
当我第一次访问页面并单击“查看详细信息”按钮时,会弹出警报,但在此之后,如果我单击任何其他“查看详细信息”按钮,则在刷新页面之前不会弹出警报。“全部查看”按钮始终显示该消息,因为当我单击该按钮时,页面将刷新

几张便条。查看详细信息按钮位于asp.net GridView中,GridView位于asp.net UpdatePanel中

另外,由于view all和viewdetails调用相同的消息,是否有方法将它们组合到一次单击事件中,例如,$('.viewall.viewdetails')。单击(

如果我删除更新面板,它会工作,但每次单击“查看全部”或“查看详细信息”时,我都会出现闪烁,因此我添加了一个返回false;这会停止闪烁,但是,如果用户确实登录,这会阻止用户转到成员页面。如果我取消返回false并让他们登录,则消息仍会弹出,然后返回ta将它们添加到成员页面。这显然不应该发生,但我不确定如何处理。基本上,事件应该是:

如果用户未登录,并单击“查看全部”或“查看详细信息”按钮,则会显示一条消息,说明他们必须登录或成为会员


如果用户已登录,并单击“查看全部”或“查看详细信息”按钮,则将其重定向到“成员”页面。查看全部和查看详细信息都有服务器端的单击事件,这些事件会做出响应。如果用户已登录,则重定向到“成员”页面。

在这些情况下,您需要取消
单击
事件

    $(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() { ... });

它不应该触发,因为您在jQuery选择器中使用了错误的类名…我的错误,它实际上被称为viewdetails,我会修复它。好的,用逗号分隔选择器是可行的,但preventDefault不起作用。如果用户登录,他们应该转到Memebrs页面,不应该看到警报。您会的你必须弄清楚这个逻辑,因为你没有提供详细信息。我可以添加哪些详细信息?如果用户没有登录,有没有办法通过点击按钮来触发jquery代码?