2013-04-24 96 views
2

我做了一个webmethod,我试图从javascript调用,但它似乎并没有被解雇。我从一个用户控件的内部列表框中获取选定的索引值并将其传递给我的web方法以删除选定的用户。我看过无数的网站,并没有找到解决方案。我没有收到任何错误,其他的一切似乎都在起作用。我已经尝试从代码中的公共子代中调用这个函数,也没有运气。任何建议,非常感谢!ASP.NET的调用代码功能从Javascript

<%@ 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 
+0

粘贴您的的WebMethod Deleteuser代码的链接。 – 2013-04-24 04:51:18

回答

3

我认为你应该使用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