如何在不使用ajax回发的情况下调用函数后面的代码

时间:2011-03-23 03:09:07

标签: c# asp.net ajax

我有一个控制器:

<asp:Button OnClick="MyFunction" runat="server" />

我希望能够在没有页面重新加载的情况下调用MyFunction。这是可能的ajax或其他什么?如果是这样,我该怎么做?

6 个答案:

答案 0 :(得分:1)

查看ASP.Net教学视频。应该涵盖大部分(如果不是全部)问题。

AJAX Videos: The Official Microsoft ASP.NET Site

答案 1 :(得分:1)

一种选择是使用页面方法

在页面中添加一个静态方法,使用WebMethod属性修饰:

[WebMethod]
public static void MyMethod(string someParam) 
{
}

ScriptManager中启用页面方法:

<asp:ScriptManager EnablePageMethods="True" ... />

然后您可以使用JavaScript(可以连接到按钮的OnClientClick事件)从客户端调用它:

PageMethods.MyMethod("some value", successCallback, errorCallback);

有关详细信息,请阅读此页面上的“在ASP.NET网页中调用静态方法”部分: http://msdn.microsoft.com/en-us/library/bb398998.aspx

答案 2 :(得分:1)

您必须下载Ajax Extensions并进行安装。

执行此操作后,请<asp:Button OnClick="MyFunction" runat="server" />以下

    <asp:ScriptManager ID="ScriptManager1" runat="server">
    </asp:ScriptManager>
    <asp:UpdatePanel ID="UpdatePanel1" runat="server">
        <ContentTemplate>
            <asp:Button ID="Button1" runat="server" Text="Your Text" OnClick="MyFunction" />
        </ContentTemplate>
    </asp:UpdatePanel>

MyFunction是一个c#/ vb函数,写在你的页面代码后面,而不是javascript函数。我指定了这个,因为我看到人们在这个问题上犯了很多错误。 OnClick属性用于c#/ vb函数,OnClientClick用于javascript函数。

有关如何将ajax功能添加到ASP .NET页面的更多信息,请转到here

答案 3 :(得分:0)

最简单的方法是使用UpdatePanel

来扭曲代码

如果你google it,有很多例子。

答案 4 :(得分:0)

是的,您可以使用此功能使用Asp.net Ajax进行客户端网络回调,您可以在方法后面调用代码而无需重新加载页面。要使用此方法,您应该将方法编写为静态类型。

您可以参考此视频

http://www.asp.net/ajax/videos/how-do-i-make-client-side-network-callbacks-with-aspnet-ajax

您还有一个使用jQuery Ajax的选项。

答案 5 :(得分:0)

<asp:Button runat="server" ID="btnShowModal" Text="Show" 
     OnClick="btnShowModal_Click" /> 
<asp:Button runat="server" ID="HiddenForModal" style="display: none" />
<ajaxToolKit:ModalPopupExtender ID="Modal1" runat="server" 
     TargetControlID="HiddenForModal" PopupControlID="PopupPanel" />......it may help u