0

我有 li 标签,其中包含指向不同页面的链接。现在我正在尝试通过单击特定的 li 标签来创建 searcj。我想当用户点击这个名为“现场工作人员”的 li 时,会出现一个子 li,其中包含数据库中所有现场工作人员的姓名。Ajax 代码用于显示现场工作人员。我在 ajax cide 中获取数据,但不知何故它没有显示出来。谁能帮我这个?

阿贾克斯代码:

 <script>  
 var ajaxOptions = {
                    type: "POST", url: null, success: null, async: true,
                    data: "", dataType: "json", contentType: "application/json; charset=utf-8"
                }

   $(function () {
                    BindFW();                        
                })
        function BindFW() {
                    ajaxOptions.data = "";
                    ajaxOptions.url = "WebForm1.aspx/BindFieldWorkers"
                    ajaxOptions.success = function (result) {
                        if (result.d != null && result.d != "") {
                            //$("#templateFW").tmpl(result.d).appendTo("#ulFW");
                            $.each(result.d, function () {
                                $('#ulFW').append();

                            });
                        }
                    }
                    $.ajax(ajaxOptions);
                }
  </script>



  <ul>
  <li  class="has-sub">
                    <a href="javascript:;">
                        <i class="icon-search"></i>
                        <span class="title">Field Worker Name</span>
                        <span class="arrow "></span>
                    </a>
                    <ul id="ulFW" class="sub">
                    </ul>
                </li>
</ul>
4

1 回答 1

0

从此脚本中使用:

$(document).ready(function () {
            BindFW(10);
        });

        function BindFW(StateId) {

            var data = {
                StateId: StateId
            };

            $.ajax({
                type: 'POST',
                url: './WebForm1.aspx/BindFieldWorkers',
                contentType: 'application/json; charset=utf-8',
                dataType: 'json',
                data: JSON.stringify(data),
                success: function (data) {
                    if (!data.d['Result']) {
                        alert('no records found!');
                        return;
                    }

                    var records = data.d['Records'];

                    for (var i = 0; i < records.length; i++) {
                        $('#ulFW').append(function () {
                            return $('<li>').text(records[i].Text).attr('data-id', records[i].ID)
                        });
                    }

                },
                error: function (data) {
                    alert('failed to connect to server!');
                }

            });
        }

这在你后面的代码中:

[System.Web.Services.WebMethod]
    public static object BindFieldWorkers(int StateId)
    {

        try
        {
            List<object> result = new List<object>();

            for (int i = 0; i < 10; i++)
            {
                result.Add(new
                {
                    ID = i,
                    Text = "Text " + i
                });
            }

            return new { Result = true, Records = result };
        }
        catch (Exception ex)
        {
            return new { Result = false, Message = ex.Message };
        }

    }
于 2013-10-26T12:05:15.470 回答