【问题标题】:Wait cursor on click of auto select button on GridView等待光标单击 GridView 上的自动选择按钮
【发布时间】:2022-01-26 16:24:25
【问题描述】:

我有一个 asp:GridView 控件,其中第一列是用户选择行的位置(因此它在每一行上显示带下划线的“选择”)。 AutoGenerateSelectButton 设置为“True”。选择行时,后面的查询可能需要一些时间才能返回页面上的数据,因此我想将光标设置为“等待”。问题是,在客户端,我不确定如何捕获在回发之前选择了哪一行。使用网格上的自动生成选择,页面上的实际 HTML 是一个带有 javascript:postback 的锚标记。

我可以轻松地为像 asp:Button 这样的控件设置等待光标,只需执行一个

btnButton.Attributes.Add("onclick", "document.body.style.cursor = 'wait';")

在后面的 C# 代码中,但是当有人不仅单击网格而是单击选择超链接时,我不确定如何使用 asp"GridView 控件执行类似的操作。

谢谢!

【问题讨论】:

    标签: asp.net select gridview wait mouse-cursor


    【解决方案1】:

    设置AutoGenerateSelectButton=false 并改用按钮。这将替换您的 gridview 上的选择链接列,这应该允许您使用所需的光标功能。

    <asp:GridView ID="GridView1" runat="server" OnSelectedIndexChanged="GridView1_SelectedIndexChanged">
        <Columns>
            <asp:TemplateField>
                <ItemTemplate>
                    <asp:LinkButton Text="Select" runat="server" CommandName="Select" OnClientClick="$('body').addClass('waiting');"/>
                </ItemTemplate>
            </asp:TemplateField>
        </Columns>
    </asp:GridView>
    

    我将 jquery 直接放在客户端单击中,但它也可以在函数中使用。我从另一个关于 SO 的问题中找到了 javascript/css 资源。 Changing cursor to waiting in javascript/jquery

    CSS:

    <style>
            body.waiting * {
                cursor: progress;
            }
    </style>
    

    【讨论】:

    • 我将 LinkBut​​ton 替换为 Button,这样我就可以使用 OnClientClick 和等待光标。我还添加了脚本和样式,但这似乎没有做任何事情。我希望等待光标覆盖整个页面,目前它没有,但似乎没有一个简单的解决方案。
    • 我已经更新了解决方案。这应该在鼠标指针旁边显示一个进度光标。这是你的意图吗?
    • 等待光标是我正在寻找的。我认为您的解决方案似乎是 JQuery 而不是 JavaScript(我对 JQuery 不太熟悉),是否必须以某种方式删除该类以清除光标?
    • 是的,您需要使用$("body").css("cursor", "default"); 来清除光标。也许 gridview_Rowupdated 会做。由于我认为页面加载,我的正在自行重置。
    猜你喜欢
    • 2018-11-27
    • 2015-09-05
    • 1970-01-01
    • 2013-07-27
    • 2010-12-04
    • 2015-02-25
    • 1970-01-01
    • 1970-01-01
    • 2012-01-12
    相关资源
    最近更新 更多