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>

...................测试.cs

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

当我按下这个按钮时调用 TimeTest 方法:

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

我的问题是:如何更新标签以满足我的需求?

谢谢!

4

1 回答 1

3

实际上我的意思是一个标签(我的错误)。一路走来,不能在TimeTest方法中刷新UpdatePanel。此外,此方法必须public static允许使用jQuery.ajaxJavaScript 中的方法异步调用它。在此处阅读更多内容:使用 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 回答