1

フォームにページクリックイベントを設定したいのですが、誰かがページの空きスペースをクリックしたときにコードを実行したいと思います。出来ますか?私はC#でVisualStudio2010を使用しています。必要に応じて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++;
            }
4

5 に答える 5

0

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>
于 2013-02-26T09:00:15.943 に答える
0

JQueryでwebmethodを使用してください...それは非常に簡単で簡単です...

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

于 2013-02-25T11:33:11.883 に答える
0

jQuery を使用する場合は、div / コンテナー全体を選択し、クリック イベントに登録します。

$document.ready(function(){
 $('#divId').click(function(){
  //Invoke postback
 })
});
于 2013-02-25T11:03:25.523 に答える
0

ポストバックが発生することを意図している場合は、次のようにマークアップします。

<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
    }
}
于 2013-02-26T08:01:01.590 に答える
0

これを行うには、webmethod を使用できます。

[WebMethod]
public static methodname(argument)
{

}

methodname次のようにjavascriptでメソッドを呼び出すことができます

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

    PageMethods.methodname(onComplete);
});

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

somename();
于 2013-02-25T11:20:32.623 に答える