C# 如何在asp.net中设置页面单击事件?

C# 如何在asp.net中设置页面单击事件?,c#,javascript,asp.net,C#,Javascript,Asp.net,我想在表单上设置页面点击事件,我想在有人点击页面上的任何空白时执行一段代码。可能吗?我正在使用visual Studio 2010和C。如果有必要,我已经准备好使用javascript,但我更希望不用它。 注意:我不是说页面加载事件。 这是我要执行的代码: int rowIndex = 0; for (int i = 1; i <= GridView1.Rows.Count; i++) { Label lt

我想在表单上设置页面点击事件,我想在有人点击页面上的任何空白时执行一段代码。可能吗?我正在使用visual Studio 2010和C。如果有必要,我已经准备好使用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++;
            }

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

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

您可以使用webmethod执行以下操作:

[WebMethod]
public static methodname(argument)
{

}
您可以在javascript中调用methodname方法,如下所示

$(document).click(function somename() {

    PageMethods.methodname(onComplete);
});

function onComplete() {
    alert('passed');
}

somename();

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


如果您的目的是进行回发,则标记:

<div style="display: none;">
    <asp:Button ID="MyControl" runat="server" OnClick="MyControl_Click" />
</div>

<script>
    $(document).ready({
        $('body').click(function() {
            __doPostBack('MyControl', '');
        });
    });
</script>

<>你确实应该考虑使用Web方法和JavaScript来做你想做的任何事情。

但是如果您必须调用整个页面生命周期并获取回发事件。。。有几种方法可以做到这一点。包括uu doPostBack事件,并解析出页面加载事件中的值

不幸的是,这假定已包含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>

如果我理解正确的话,如果用户单击页面上的任何位置,您希望执行一些代码隐藏代码?您是在寻找一个不知道页面流量的异步回发用户,还是一个同步回发用户看到页面已发布并等待页面重新加载?查看此链接:基本上,您会在容器div上注册一个单击事件,或者跨越整个页面,然后对WebMethod执行ajax请求的任何操作都会更改中特定列的值GridView@user2064292如果将该页的所有控件都包含在一个div中,然后您可以尝试使用该div的onclick事件。@user2064292将页面的所有控件都包含在一个div中,并尝试使用div..@coder的onclick事件。但是,即使在div中,我如何从onclick调用后面的代码呢?
<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>