0

我有一个简单的 webmethod ,它基本上是在我的代码隐藏中过滤报告:-

    [WebMethod(EnableSession = true)]
    public static List<Report> FetchReports(string reportName)
    {
        List<Report> FetchedReports = dataModel.PopulateLinks().Where(r => r.Name.ToLower().Contains(reportName.ToLower())).ToList();
        return FetchedReports;
    }

现在返回到这个 Jquery 函数:-

        $("#reports-textSearch").keyup(function () {
        var textLength = $(this).val().length;
        if (textLength > 2) {
            var args = {
                reportName: document.getElementById('reports-textSearch').value
            };
            $.ajax({
                type: "POST",
                contentType: "application/json; charset=utf-8",
                url: "Dashboard.aspx/FetchReports",
                data: JSON.stringify(args),
                dataType: "json",
                success: function(r) {
                    var reports = r.data;
                    $.each(reports, function (index, report) {
                        $("#div1").append("<strong>" + report.Name + "</strong>" + "<br/>" +
                        "ID: " + report.Id + "<br />" +
                        "DisplayName: " + report.DisplayName + "<br />" +
                        "Url: " + report.Url + "<br />" +
                        "ParentId: " + report.ParentId + "<br />" +
                        "ReportGroupId: " + report.ReportGroupId + "<br />" +
                        "AccessLevel: " + report.AccessLevel + "<br />");
                        alert(reports);
                    });
                    //var reports = data.d;
                    //__doPostBack('div#UPMainMenu', reports());
                },
                error: function (data) {
                    alert("Error");
                }
            });

        }
    });

我希望将其提交回另一个页面,从那里我将获得搜索结果并填充另一个面板。

目前此代码不起作用,如何更改代码的 $.each 部分以返回实际列表,然后如何在 C# 代码隐藏中对其进行操作以获得所需的过滤报告?

感谢您的帮助和时间

4

1 回答 1

0

嗨,请按照这篇详细文章了解如何将参数 frm jquery 传递给后面的代码。

jQuery 和 WCF

于 2013-04-21T08:00:26.863 回答