2016-12-22 1 views
-3

Ich habe versucht, Daten für einen bestimmten Benutzer aus SQL Server-Datenbank mit JSON-Daten zu holen. Aber es ist immer in der Konsole zeigt Fehler wie:So beheben Sie diesen Fehler "Die Verwendung von getPreventDefault() ist veraltet. Verwenden Sie stattdessen defaultPrevented."

"Verwendung von getPreventDefault() ist veraltet Verwenden defaultPrevented statt.."

Und Werte werden nicht aus der Datenbank abgerufen.

Mein Code ist:

Client-side:

<body> 
<form id="form1" runat="server"> 
<table border="0" > 
    <tr> 
     <td> 
      <asp:Label ID= "lblName" runat="server" Text="Name" ></asp:Label> 
     </td> 
     <td> 
      <asp:TextBox ID="txtName" runat="server" Text="" /><br /> 
     </td> 
    </tr> 
    <tr> 
      <td> &nbsp </td> 
    </tr> 
    <tr> 
     <td colspan ="2" > 
      <asp:Button ID="btnShow" Text="Show" runat="server" /> 
     </td> 
    </tr> 
</table> 
    <hr /><asp:GridView ID="gvUsers" runat="server" AutoGenerateColumns="false" HeaderStyle-BackColor="#3AC0F2" 
    HeaderStyle-ForeColor="White" RowStyle-BackColor="#A1DCF2"> 
    <Columns> 
     <asp:BoundField DataField="Username" HeaderText="Username" /> 
     <asp:BoundField DataField="Password" HeaderText="Password" /> 
    </Columns> 
</asp:GridView> 
</form> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> 
<script type="text/javascript" src="http://cdn.jsdelivr.net/json2/0.1/json2.js"></script> 
<script type="text/javascript"> 
    $(function() { 
     $("[id*=btnShow]").bind("click", function() { 
      var user = {}; 
      user.Name = $("[id*=txtName]").val(); 
      user.grd = $("[id*=gvUsers]").val(); 
      $.ajax({ 
       type: "POST", 
       url: "View.aspx/ViewUser", 
       data: '{user: ' + JSON.stringify(user) + '}', 
       contentType: "application/json; charset=utf-8", 
       dataType: "json", 
       success: function (response) { 
        //alert("User has been added successfully."); 
        window.location.reload(); 
       } 
      }); 
      return false; 
     }); 
    }); 
</script> 
</body> 

Server-Side:

<WebMethod()> _ 
<ScriptMethod()> _ 
Public Shared Sub ViewUser(user As Users) 
    Dim grd As GridView 
    grd = user.grd 
    'Dim gvUsers As GridView 
    Dim constr As String = ConfigurationManager.ConnectionStrings("constr").ConnectionString 
    Using con As New SqlConnection(constr) 
     Using cmd As New SqlCommand("SELECT * FROM Users Where Username = @Name") 
      Using sda As New SqlDataAdapter() 
       Dim dt As New DataTable() 
       cmd.CommandType = CommandType.Text 
       cmd.Parameters.AddWithValue("@Name", user.Name) 
       cmd.Connection = con 
       sda.SelectCommand = cmd 
       sda.Fill(dt) 
       'grd.Visible = True 
       grd.DataSource = dt 
       grd.DataBind() 
      End Using 
     End Using 
    End Using 
End Sub 
End Class 
Public Class Users 
Public Property Name() As String 
    Get 
     Return _Name 
    End Get 
    Set(value As String) 
     _Name = value 
    End Set 
End Property 
Private _Name As String 
Public Property grd() As GridView 
    Get 
     Return _grd 
    End Get 
    Set(value As GridView) 
     _grd = value 
    End Set 
End Property 
Private _grd As GridView 
End Class 

Aber meine Daten sind nicht in der Webseite angezeigt wird. Vielen Dank im Voraus

+2

Der Fehler hat nichts mit dem Code zu tun, den Sie angezeigt haben. Sind die anderen Bibliotheken in Ihrer Seite enthalten? –

+0

Versuchen Sie 'defaultPrevented = true'. – Harish

+0

@RoryMcCrossan: Es ist in der Version von jQuery, die sie verwenden. –

Antwort

1

Dies ist nur, weil Sie eine Version von jQuery verwenden, die auf eine leicht schlampige Weise auf ältere Browser reagiert. Die Version Sie verwenden hat diesen Code in ihm:

this.isDefaultPrevented=e.defaultPrevented||e.returnValue===!1||e.getPreventDefault&&e.getPreventDefault() 

Wie Sie sehen können, ist es nicht versuchen, die defaultPrevented Eigenschaft zu verwenden, aber dann geht auf getPreventDefault zu nennen, wenn der Standard verhindert worden ist. Wenn also der Standard nicht verhindert wird, ruft er auch bei Browsern mit der Eigenschaft die alte Funktion auf, falls vorhanden.

Neuere Versionen von jQuery (2.x, 3.x) verwenden Sie nicht mehr getPreventDefault. Wenn Sie die Warnung loswerden möchten, verwenden Sie entweder eine aktuellere jQuery oder hacken Sie die verwendete Warnung, damit sie die Existenz der Eigenschaft überprüft und nicht nur den Wert überprüft.

+0

Ich änderte meine JQuery-Version, aber immer noch das gleiche Problem auftritt. – MDP

+0

@MDP: Was hast du daran geändert? Ich habe kürzlich 2.x und 3.x überprüft, keiner von ihnen enthält einen Aufruf von 'getPreventDefault'. –

+0

Ich habe meine JQuery-Version aktualisiert, sie funktioniert jedoch nicht und zeigt einen Fehler als 304 Not Modified. – MDP

Verwandte Themen