2

私はこのコードを持っています:

<script type="text/javascript" language="javascript">
    $(document).ready(function () {
        $('#refreshDocuments').click(function () {
            var areaId = 42;
            $.ajax({
                type: "POST",
                url: "Test.aspx/TimeTest",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (data) {
                    alert(data.d);
                }
            });
        });
    });
</script>

...................

<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
    <ContentTemplate>
        <asp:Label ID="lblTime" runat="server" Text="Label"></asp:Label>
    </ContentTemplate>
</asp:UpdatePanel>

....................Test.cs

[System.Web.Services.WebMethod]
    private void TimeTest()
    {
        lblTime.Text = DateTime.Now.ToString();
        UpdatePanel1.Update();``
    }

このボタンを押すと、TimeTest メソッドが呼び出されます。

<id="refreshDocuments">Test</a>

私の質問は次のとおりです。ニーズに合わせてラベルを更新するにはどうすればよいですか?

ありがとうございました!

4

1 に答える 1

3

実はラベルのつもりでした(私のミス)。ずっと、メソッドで UpdatePanel を更新することはできませんTimeTest。また、このメソッドはJavaScript からのメソッドpublic staticと非同期に呼び出せるようにする必要があります。jQuery.ajax詳細はこちら: jQuery を使用して ASP.NET AJAX ページ メソッドを直接呼び出す

あなたができることは、LinkButtonコントロールを使用AsyncPostBackTriggerして UpdatePanel として登録し、この LinkBut​​ton の Click イベント ハンドラーですべてのスタッフを実行することです。

<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
    <ContentTemplate>
        <asp:Label ID="lblTime" runat="server" Text="Label"></asp:Label>
    </ContentTemplate>
    <Triggers>
        <asp:AsyncPostBackTrigger ControlID="refreshDocuments" />
    </Triggers>
</asp:UpdatePanel>
<asp:LinkButton runat="server" ID="refreshDocuments" 
    Text="Click Me" OnClick="refreshDocuments_OnClick" />

protected void refreshDocuments_OnClick(object sender, EventArgs e)
{
    //refresh controls in UpdatePanel1
    //UpdatePanel1 will be refreshed automatically
}
于 2013-04-02T19:15:26.530 に答える