ASP.Net - 使用 jQuery 的 Ajax 自动完成

发布于 2024-11-09 00:03:19 字数 1373 浏览 0 评论 0原文


我已经尝试在我的网站中实现自动完成功能 2 小时,但仍然无法完成。
这是我的代码。

<script type="text/jscript">
        $(document).ready(function() {

    $.ajax({
        type: "POST",
        url: "/AjaxLoad.asmx/GetBrands",
        dataType: "json",
        data: "{}",
        contentType: "application/json; charset=utf-8",
        success: function(data) {
            var datafromServer = data.d.split(":");
            $("[id$='tbBrands']").autocomplete({
                source: datafromServer
            });
        },
        error: function(XMLHttpRequest, textStatus, errorThrown) {
           alert(textStatus);
        }
    });

}
    </script>

    <div id="ajaxbrands">
        <input id="tbBrands" runat="server" />
    </div>

Web 服务代码

[WebMethod]
    public string GetBrands()
    {
        StringBuilder sbStates = new StringBuilder();

        sbStates.Append("Apple").Append(":");
        sbStates.Append("Apex").Append(":");
        sbStates.Append("Amex").Append(":");
        sbStates.Append("Unity").Append(":");
        sbStates.Append("Unex").Append(":");
        sbStates.Append("Unitel");            
        return sbStates.ToString();
    }

GetBrands 方法返回简单字符串作为响应,并以“:”作为分隔符。 有人能指出我正确的方向吗!

更新:我在 Web 服务代码中放置了一个断点,但没有命中!您认为我调用网络服务的方式有问题吗?

Hi
I have been trying to implement auto complete in my site from 2 hrs and still couldn't get thru.
Here's my code.

<script type="text/jscript">
        $(document).ready(function() {

    $.ajax({
        type: "POST",
        url: "/AjaxLoad.asmx/GetBrands",
        dataType: "json",
        data: "{}",
        contentType: "application/json; charset=utf-8",
        success: function(data) {
            var datafromServer = data.d.split(":");
            $("[id$='tbBrands']").autocomplete({
                source: datafromServer
            });
        },
        error: function(XMLHttpRequest, textStatus, errorThrown) {
           alert(textStatus);
        }
    });

}
    </script>

    <div id="ajaxbrands">
        <input id="tbBrands" runat="server" />
    </div>

Web service code

[WebMethod]
    public string GetBrands()
    {
        StringBuilder sbStates = new StringBuilder();

        sbStates.Append("Apple").Append(":");
        sbStates.Append("Apex").Append(":");
        sbStates.Append("Amex").Append(":");
        sbStates.Append("Unity").Append(":");
        sbStates.Append("Unex").Append(":");
        sbStates.Append("Unitel");            
        return sbStates.ToString();
    }

GetBrands method returns simple string in response with ":" as delimiter.
Could someone point me in right direction!

Update: I put a break point in Web service code but it was not hit! Do you think there is problem with the way I am calling the web service!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

美人如玉 2024-11-16 00:03:19

json 字符串应该像这样

{"key":"value","key1":"value1"}

并使用

success: function(data) {

alert($.parseJSON(data));
            var datafromServer = data.d.split(":");
            $("[id$='tbBrands']").autocomplete({
                source: datafromServer
            });
        },





for (var key in result) {
    if (result.hasOwnProperty(key)) {
         alert(result[key]);

json string should be like this

{"key":"value","key1":"value1"}

and use

success: function(data) {

alert($.parseJSON(data));
            var datafromServer = data.d.split(":");
            $("[id$='tbBrands']").autocomplete({
                source: datafromServer
            });
        },





for (var key in result) {
    if (result.hasOwnProperty(key)) {
         alert(result[key]);
可遇━不可求 2024-11-16 00:03:19

您正在使用 dataType:“json”,这意味着 jquery 将尝试将结果评估为 JSON,如果您使用纯文本作为响应,请使用 dataType:“text”。

You're using the dataType: "json" which means jquery will try to evaluate the result as JSON, if you are using plain text for the response use dataType: "text".

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文