【问题标题】:ASP.NET Call Code Behind Function From JavascriptASP.NET 从 Javascript 调用函数背后的代码
【发布时间】:2013-04-24 04:16:23
【问题描述】:

我创建了一个尝试从 javascript 调用的网络方法,但它似乎没有触发。我从用户控件内的列表框中获取选定的索引值并将其传递给我的 web 方法以删除选定的用户。我查看了无数网站,但没有找到解决方案。我没有收到任何错误,其他一切似乎都在工作。我试过从后面代码中的公共子程序调用这个函数,也没有运气。任何建议都非常感谢!

<%@ Page Language="VB" AutoEventWireup="false" ClientIDMode="Static" CodeFile="Edit.aspx.vb" Inherits="_Default" %><%@ Register src="AdminEdit.ascx" tagname="AdminEdit" tagprefix="uc1" %>
<%@ Register TagPrefix="asp" Namespace="AjaxControlToolkit" Assembly="AjaxControlToolkit"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3
.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
        <script type="text/javascript">
        function YesNo() {
            var result = confirm("Are you sure you want to delete?");


            if (result == true) {
                //var strUser = e.options[e.selectedIndex].value;
                var e = document.getElementById('<%= newLb.clientID %>');
                //var e = document.getElementById("ListBox1");
                var si = e.selectedIndex;
                var sv = e.value;
                document.write("TRUEEEEE");
                PageMethods.DeleteUser(sv);
            }
            else {
                document.write("FALSEEEEEE");
            }
        }
</script>

</head>
<body>
    <form id="form1" runat="server">
    <asp:ScriptManager ID="A1" runat="server"  EnablePageMethods="true"></asp:ScriptManager>

    <div>

        <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl="~/Login.aspx">Login</asp:HyperLink>

    </div>
    <asp:HyperLink ID="HyperLink2" runat="server" 
        NavigateUrl="~/ChangePassword.aspx">Change Password</asp:HyperLink>
    <br />
    <asp:HyperLink ID="HyperLink3" runat="server" NavigateUrl="~/CreateUser.aspx">Create User</asp:HyperLink>
    <br />
    <asp:HyperLink ID="HyperLink4" runat="server" NavigateUrl="~/AddRole.aspx">Add Roles</asp:HyperLink>
        <br />
        <br />
        <uc1:AdminEdit ID="AdminEdit1" runat="server" />
    </form>
</body>
</html>
Public newLb As New ListBox
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
    If Roles.IsUserInRole("admin") Then
    ElseIf Roles.IsUserInRole("editor") Then
        newLb = CType(AdminEdit1.FindControl("ListBox1"), ListBox)
    End If
End Sub
        <System.Web.Services.WebMethod()>
    Public Shared Function DeleteUser(ByVal uName As String) As String
        Dim u As MembershipUser
        Dim newEdit As New _Default
        Dim _newLb = newEdit.newLb
        _newLb.Items.RemoveAt(0)
        u = Membership.GetUser(uName)
        Try
            Membership.DeleteUser(u.UserName)
        Catch ex As Exception
            Return "Error:" & ex.Message
        End Try
        Return u.IsApproved.ToString
    End Function

【问题讨论】:

  • 为网络方法 Deleteuser 粘贴您的代码。

标签: javascript asp.net webmethod


【解决方案1】:

我认为你应该使用JSon来调用web方法,这里是简单的例子

 $.ajax({
 type: "POST",
 contentType: "application/json; charset=utf-8",
 url: "yourpage.aspx/yourmethod",
 data: "{}",
 dataType: "json",
 success: function(data) {
 //Write functionality to display data
 },
 error: function(result) {
 alert("Error");
 }
 });

这里是可以帮助你的链接Link

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-21
    • 2014-05-16
    • 2011-02-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多