如何在asp.net中设置页面点击事件

本文关键字:事件 设置 asp net | 更新日期: 2023-09-27 18:01:02

我想在表单上设置页面点击事件,我想在有人点击页面上的任何空白时执行一段代码。有可能吗?我正在使用visual Studio 2010和C#。如果必须的话,我已经准备好使用javascript了,但我更喜欢在没有javascript的情况下使用它。注意:我不是在谈论页面加载事件。这是我想要执行的代码:

 int rowIndex = 0;
            for (int i = 1; i <= GridView1.Rows.Count; i++)
            {
                Label ltime = (Label)GridView1.Rows[rowIndex].Cells[1].FindControl("Label2");
                ltime.Text = time.Text+"-"+time1.Text;

                rowIndex++;
            }

如何在asp.net中设置页面点击事件

如果使用jQuery,请选择整个div/容器并注册点击事件:

$document.ready(function(){
 $('#divId').click(function(){
  //Invoke postback
 })
});

将webmethod与JQuery一起使用。。。这很简单,很直接。。。

http://www.codeproject.com/Articles/287430/Calling-ASP-Net-WebMethods-using-jQuery

如果您的意图是发生回发,请标记:

<div style="display: none;">
    <asp:Button ID="MyControl" runat="server" OnClick="MyControl_Click" />
</div>
<script>
    $(document).ready({
        $('body').click(function() {
            __doPostBack('MyControl', '');
        });
    });
</script>

背后的代码

public class MyPage
{
    protected void MyControl_Click(Object sender, EventArgs e)
    {
        // Click code goes here
    }
}

你真的应该考虑使用web方法和javascript来做你想做的任何事情。

但是,如果您绝对必须调用整个页面生命周期并获得回发事件。。。有几种方法可以做到这一点。包括__doPostBack事件,以及解析Page_Load事件中的值。

不幸的是,这假设已经包含asp.net客户端脚本。现代的asp.net试图尽量减少这种情况,除非你检查页面来源,否则你无法确定它是否在你的页面上。

但这里有一种技术应该在大多数情况下都有效。制作一个不可见的runat服务器按钮,挂起文档单击事件,然后调用按钮单击事件。

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <style type="text/css">
        .NoDisplay
        {
            display: none;
        }
    </style>
    <title></title>
</head>
<body style="background: green">
    <form id="form1" runat="server">
        <div runat="server" id="TestDiv">
        </div>
        <!-- Hidden button -->
        <asp:Button ID="BodyButton" runat="server" OnClick="BodyClick" CssClass="NoDisplay" />
    </form>
    <script type="text/javascript">
        document.onclick = function () { document.getElementById("BodyButton").click(); }
    </script>
    <script runat="server">
        protected void BodyClick(object sender, EventArgs e)
        {
            TestDiv.InnerHtml = string.Format("This is a click test at {0}", DateTime.Now);
        }
    </script>
</body>
</html>

您可以使用webmethod来完成此操作:

[WebMethod]
public static methodname(argument)
{
}

您可以将javascript中的方法methodname调用为

$(document).click(function somename() {
    PageMethods.methodname(onComplete);
});
function onComplete() {
    alert('passed');
}
somename();