如何解决此错误,“不赞成使用getPreventDefault().请改用defaultPrevented. [英] how to resolve this error "Use of getPreventDefault() is deprecated. Use defaultPrevented instead."
问题描述
我尝试使用json数据从sql服务器数据库中为特定用户获取数据.但是它在控制台中始终显示错误:
I tried to fetch datas for a particualr user from sql sever database using json data. But its always showing error in the console as:
不赞成使用getPreventDefault().请使用defaultPrevented 代替."
"Use of getPreventDefault() is deprecated. Use defaultPrevented instead."
并且没有从数据库中检索值.
And values are not retrieving from the database.
我的代码是:
客户端:
<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>   </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>
服务器端:
<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
但是我的数据没有显示在网页中.预先谢谢你
But my datas are not displaying in the webpage. Thank you in advance
推荐答案
这仅仅是因为您使用的jQuery版本以稍微草率的方式迎合了较旧的浏览器.您使用的版本中包含以下代码:
This is just because you're using a version of jQuery that caters to older browsers in a slightly-sloppy fashion. The version you're using has this code in it:
this.isDefaultPrevented=e.defaultPrevented||e.returnValue===!1||e.getPreventDefault&&e.getPreventDefault()
如您所见,
它确实尝试使用defaultPrevented
属性,但是如果没有阻止默认设置,它将继续调用getPreventDefault
.因此,即使在具有该属性的浏览器上,如果未阻止默认设置,它也会调用旧函数(如果存在).
As you can see, it does try to use the defaultPrevented
property, but then goes on to call getPreventDefault
if the default hasn't been prevented. So even on browsers with the property, if the default hasn't been prevented, it will call the old function if present.
较新版本的jQuery(2.x,3.x)不再使用getPreventDefault
.如果您想摆脱警告,请使用更新的jQuery或修改您正在使用的jQuery,以便它检查属性的存在,而不仅仅是检查其值.
Newer versions of jQuery (2.x, 3.x) don't use getPreventDefault
anymore. If you want to get rid of the warning, either use a more up-to-date jQuery or hack the one you're using so that it checks for the existence of the property rather than just checking its value.
这篇关于如何解决此错误,“不赞成使用getPreventDefault().请改用defaultPrevented.的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!