调用从JavaScript代码隐藏功能:简介
我一直在寻找在CodeProject上关于这同一主题的文章,并不能找到这正是,所以我希望这可以帮助别人。
作为这篇文章的标题说,今天我想分享了如何从JavaScript中调用,或者换句话说中的函数或方法的代码隐藏,运行一些从客户端调用服务器端代码,然后更新我们的网站页面。背景
我需要一些ASPX页面添加一些功能,使他们看起来更像是一个桌面应用程序,更加适应。的事情,我不想写在JavaScript功能。我想要实现的东西有点复杂,但因为我已经在代码隐藏编码,我想我会尝试重写它,如果它在JavaScript可以调用一个函数或方法(在这种情况下)。简单的场景
让我们想象下面这个简单的方案,目的只是为了显示我们如何才能实现我们的目标。假设我们有两个文本框:改为txtName和txtLastName。我们希望用户写他的全名,然后迎接他的消息,当最后一个文本框失去焦点。
我们可以很容易地做到这一点,在所有JavaScript,但记住,这仅仅是演示了如何调用一个服务器端的方法从客户端和更新我们的网页的目的。使用代码
确定。让我们的ASPX页面添加三个文本框:<asp:TextBox ID="txtName" runat="server"></asp:TextBox>
<asp:TextBox ID="txtLastName" runat="server"></asp:TextBox>
<asp:TextBox ID="txtMsg" runat="server"></asp:TextBox>
现在,我们体内的标签,让我们添加一些JavaScript:{C}
我们刚刚创建的三个功能:迎:接收改为txtName,txtLastName和txtMsg文本框的ClientID。然后,它会改为txtName和txtLastName,将其价值的对象,并调用代码隐藏功能quot; greetUserquot。我们传递给该函数的四个值:我们已经由串联改为txtName和txtLastName值,如果一切OK,这将被称为的功能,如果事情失败,被称为的函数,它是,了全名,我们可以通过无论我们希望在最后一个参数,在这种情况下,txtMsg文本框的ClientID。请注意,"greetUserquot;是我们的后台代码,我们使用PageMethods来访问它的功能和。GreetSuccess的功能是,如果一切OK,被称为是。收到的代码隐藏功能和参数的结果是:txtMsg文本框的ClientID,所以我们可以得到对象本身并分配给它的代码隐藏功能作为其值的结果。GreetFailed:作为GreetSuccess接收相同的两个参数。在这种情况下,我们只是要显示发生错误的警报。
现在,让我们来看看我们后面的代码。首先,在我们的Page_Load方法中,我们将添加:If Page.IsPostBack = False Then
txtLastName.Attributes.Add("onblur", "javascript:greet('" & _
txtName.ClientID & "','" & txtLastName.ClientID & "','" & _
txtMsg.ClientID & "')")
End If
为什么我分配的属性quot; onblurquot;我们的txtLastName文本框,在我们的代码,而不是直接在ASPX页面做呢?只是用于演示。你可以从ASPX页面中添加这个属性,但如果你有一个更复杂的情况,比方说,一个GridView,或与DataTemplates DataList的,或者如果你是动态创建控件...例如,那么你可以得到控制GridView_DataBound方法中的代码,或在功能,您创建您的动态布局的需要,并调用JavaScript函数的方式,它是上面显示。
确定,这里涉及的重要组成部分的文章。背后的功能,我们是从JavaScript调用的代码:<System.Web.Services.WebMethod()> _
Public Shared Function greetUser(ByVal fullName As String) As String
Return "Welcome " & fullName & "!"
End Function
请注意,我们给这个函数System.Web.Services.WebMethod属性,这是我们之所以能访问这个JavaScript函数使用PageMethods。在这个函数中,我们接收的全名,我们通过加入我们的quot改为txtName和txtLastName值的时候; Greetquot; JavaScript函数。最后的话
我想就是这样。这是一个非常简单的情况,但真正复杂的操作,你可以认为一个GridView内。与以往一样,请随时离开你的意见,问题,建议,或任何你想告诉。您还可以读取。
阅读!