通过ajax jquery调用传递的所有参数都没有获取任何数据 [英] Not getting any data while all parameters passed through ajax jquery call are null
问题描述
我正在使用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屋!