通过ajax jquery调用传递的所有参数都没有获取任何数据 [英] Not getting any data while all parameters passed through ajax jquery call are null

查看:51
本文介绍了通过ajax jquery调用传递的所有参数都没有获取任何数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用3下拉过滤器(city / area / vendortype)创建SearchVendor页面。在页面滚动时,它应显示由用户过滤的相关供应商。

为了获得上述结果,我创建了

1) Storedprocedure(pageNumber / pageSize / city / area / vendortype) - 应根据用户选择的过滤器组合返回所有数据。如果没有选择过滤器,那么它应该返回所有数据,即供应商。

2) Webservice(pageNumber / pageSize / city / area / vendortype) - 获取数据来自数据库

3) Ajax Jquery - 用于页面滚动逻辑并将参数传递给WebService。



我的问题是

当我选择所有3个(城市/区域/ vendortype)选项时,我得到正确的数据。但是当其中一个选项没有显示任何结果时(

I am creating SearchVendor page with 3 dropdown filter(city/area/vendortype).On page scroll it should display related vendors filtered by the user.
To get above result I have created
1)Storedprocedure(pageNumber/pageSize/city/area/vendortype)- Which should return all data based on combination of filter selected by the user. If none of the filter is selected then it should return all data i.e vendor.
2)Webservice(pageNumber/pageSize/city/area/vendortype) - to get the data from the database
3)Ajax Jquery - For page scroll logic and to pass parameters to WebService.

My problem is
I am getting correct data when all 3(city/area/vendortype) options is selected.But its not showing any result when one of options(

city/area/vendortype

)未被选中。



我尝试过:



) is not selected.

What I have tried:

<script type="text/javascript">
        $(document).ready(function () {
            var currentPageNumber = 1;
            loadData(currentPageNumber);

            $(window).scroll(function () {
                if ($(window).scrollTop() == $(document).height() - $(window).height()) {

                    currentPageNumber += 1;
                    loadData(currentPageNumber);
                }

            });

            function loadData(currentPage) {
                var parcity=$("#lblCityParameter").val();
                var pararea = $("#lblAreaParameter").val();
                var parvendortype = $("#lblVendortype").val();
                $.ajax({
                    type: 'post',
                    url: 'WebService/VendorService.asmx/GetVendors',
                    data: { pageNumber: currentPage, pageSize: 6, city:parcity, area:pararea, vendortype:parvendortype },
                   dataType: 'json',
                   //contentType: "application/json; charset=utf-8",
                     success: function (data) {
                      var vendorRepeater = $('#repdata');
                      $(data).each(function (index, ven) {
                         
                            vendorRepeater.append('<div class="col-md-4 wow fadeInLeft animated" data-wow-delay="0.4s" style="text-align:center"><div id="Div1" class="living_boxauto" runat="server"><a href="VendorDetails.aspx?VendorId=' + ven.pID + '"><div class="media"><img runat="server" class="img-responsive" src="images/'
                                + ven.pcoverimage +
                                '" style="width:300px;height:200px;" /><div class="media__body"><h2>Image Title</h2><p>Description</p></div></div></a><div id="Div2" class="living_desc" runat="server"><h3><a href="VendorDetails.aspx?VendorId='
                                + ven.pID +
                                '"><asp:Label ID="lblVendorName" runat="server" Text="'
                                + ven.pvendorname +
                                '" CssClass="lblVendorName"></asp:Label></a></h3><p></p></div></div></div>');
                        });
                    }
                });

            }

        });

    </script>







[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
[System.Web.Script.Services.ScriptService]
public class VendorService : System.Web.Services.WebService {

    public VendorService () {

        //Uncomment the following line if using designed components 
        //InitializeComponent(); 
    }


    //   public void GetVendors(int pageNumber, int pageSize)
    [WebMethod]
 //  [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
  public void GetVendors(int pageNumber, int pageSize, string city, string area, string vendortype)
  {
        List<VendorData> listVendors = new List<VendorData>();

        string cs = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
        using (SqlConnection con = new SqlConnection(cs))
        {
            SqlCommand cmd = new SqlCommand("spGetVendorbyFilter", con);
            cmd.CommandType = System.Data.CommandType.StoredProcedure;
            cmd.Parameters.AddWithValue("@PageNumber", pageNumber);
            cmd.Parameters.AddWithValue("@PageSize", pageSize);
            
            cmd.Parameters.AddWithValue("@city", city);
            cmd.Parameters.AddWithValue("@area", area);
            cmd.Parameters.AddWithValue("@vendortype", vendortype);
            

            con.Open();
            SqlDataReader rdr = cmd.ExecuteReader();
            while (rdr.Read())
            {
                VendorData vendor = new VendorData();
                vendor.pID = Convert.ToInt32(rdr["VendorID"]);
                vendor.pvendorname = Convert.ToString(rdr["VendorName"]);
                vendor.pcoverimage = Convert.ToString(rdr["CoverImage"]);
                vendor.pcategory = Convert.ToString(rdr["Category"]);
                listVendors.Add(vendor);

            }
        }

        JavaScriptSerializer js = new JavaScriptSerializer();
        Context.Response.Write(js.Serialize(listVendors));
    }
    
}










ALTER PROCEDURE [dbo].spGetVendorbyFilter 
                      @PageNumber INT,
                      @PageSize   INT,
                      @city       VARCHAR(200),
                      @area       VARCHAR(200),
                      @vendortype VARCHAR(200)
AS
  BEGIN
      DECLARE @StartRow INT
      DECLARE @EndRow INT

      SET @StartRow = ( ( @PageNumber - 1 ) * @PageSize ) + 1;
      SET @EndRow= @PageNumber * @PageSize;



WITH Result
           AS (
               SELECT *,
                      Row_number()
                        OVER (
                          ORDER BY VendorID ASC) RowNumber
               FROM   tblVendor WHERE (@city IS NULL OR (City = @city))
                 AND  (@area IS NULL OR (Area = @area))
                 and  (@vendortype IS NULL OR (Category = @vendortype))
               
              ) 
                  
     Select  * from Result
     WHERE RowNumber BETWEEN @StartRow And @EndRow

END

推荐答案

document )。ready( function (){
var currentPageNumber = 1 ;
loadData(currentPageNumber);
(document).ready(function () { var currentPageNumber = 1; loadData(currentPageNumber);


window )。scroll(函数(){
if
(window).scroll(function () { if (


窗口)。scrollTop()==
(window).scrollTop() ==


这篇关于通过ajax jquery调用传递的所有参数都没有获取任何数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆