【发布时间】:2013-04-11 18:08:49
【问题描述】:
与此相关:jquery doesnt go to error or success
我有一个旧的 1.1 asp.net/vb.net 项目,我需要将自动完成添加到文本框。 我这样写了一个 .asmx(网络服务文件):
<WebMethod()> _
Public Function GetTags() As String()
Dim arr() As String = BindTags()
Return arr
End Function
Private Function BindTags() As String()
Dim cmdSelect As SqlCommand
Dim conMyData As SqlConnection
Dim reader As SqlDataReader
Dim myList As New ArrayList
'try and make a connection
Try
conMyData = New SqlConnection(ConfigurationSettings.AppSettings("strConn"))
cmdSelect = New SqlCommand("select_tags_grid", conMyData)
With cmdSelect
.CommandType = CommandType.StoredProcedure
'add parameters
.Parameters.Add("@SortOrder", SqlDbType.TinyInt).Value = 1
'check the clientid
conMyData.Open()
reader = cmdSelect.ExecuteReader(CommandBehavior.CloseConnection)
End With
While (reader.Read())
myList.Add(CType(reader("Tag"), String))
End While
Dim arr() As String = CType(myList.ToArray(Type.GetType("System.String")), String())
Return arr
Catch e As Exception
'clean up and close resources
Throw e
Finally
cmdSelect = Nothing
conMyData.Close()
conMyData = Nothing
End Try
End Function
这很好用,因为我在运行这个 .asmx 文件时可以看到数据。然后,我阅读了有关 .net 1.1 不支持 json / jsonp 格式并使用 xml 的文章。因此,我继续着手在 jquery 方面将此自动完成 ui 附加到我的文本框。这是我尝试过的:
$("#txtTags").autocomplete({
minLength: 0,
source: function(request, response) {
$.ajax({
type: "POST",
url: "GetTags.asmx/GetTags",
dataType: "xml",
contentType: "text/xml; charset=utf-8",
success: function(xml) {
alert("hi");
// Completion logic goes here
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert(textStatus);
}
});
},
});
现在,当我运行我的应用程序并使用谷歌浏览器时,当我在文本框中键入时,我没有看到开发人员工具控制台中弹出任何错误。所以我不确定这是否有效。我试图遵循这个 stackoverflow 答案:https://stackoverflow.com/a/7729147/168703 看看这家伙是怎么做到的,我很确定我正确地遵循了?谁能告诉我做错了什么。
【问题讨论】:
-
在某些时候,简单地升级到受支持的 .NET 版本可能会变得更容易。也许只是 .NET 2.0。
-
@JohnSaunders 是的,先生,我当然明白,有一些原因我们甚至不能升级到 .net 2.0。我想我已经很接近了,但我仍然缺少一块馅饼...stackoverflow.com/questions/15957113/…
标签: jquery asp.net vb.net .net-1.1