0

ユーザーの価格帯の選択に基づいて結果をフィルタリングしようとしています。そのため、価格の範囲を表示するために jquery スライダーを選択します。ajaxそして、スライダーでjqueryを使用してWebメソッドを呼び出すことにしましたstop event

この段階ではすべて問題ありません。jqueryajax呼び出しによって渡された最小範囲と最大範囲に基づいてレコードをフィルタリングする Web メソッドのコードを次に示します。

[WebMethod]
    public static void FilterByPrice(double min,double max)
    {
        List<BALHotelList> searchresult =(List<BALHotelList>) HttpContext.Current.Session["searchresult"];
        searchresult = searchresult.Where(t => (double)t.totalPrice >= min && (double)t.totalPrice <= max).ToList();
        HttpContext.Current.Session["searchresult"] = searchresult;        
        SearchResult s = new SearchResult();
        s.Paging();
    }

問題は、リピーター制御のPaging設定に使用されるメソッドにあります。datasourceページング方法は次のとおりです。

 protected  void Paging()
    {
        List<BALHotelList> searchresult = (List<BALHotelList>)Session["searchresult"];
        PagedDataSource objPds = new PagedDataSource();
        objPds.DataSource = searchresult;
        objPds.AllowPaging = true;
        objPds.PageSize = Convert.ToInt32(ddlPageNo.SelectedValue);

        objPds.CurrentPageIndex = CurrentPage;

        lblCurrentPage.Text = "Page: " + (CurrentPage + 1).ToString() + " of "
           + objPds.PageCount.ToString();

        // Disable Prev or Next buttons if necessary
        cmdPrev.Enabled = !objPds.IsFirstPage;
        cmdNext.Enabled = !objPds.IsLastPage;

        rptHotels.DataSource = objPds;
        rptHotels.DataBind();
    }

このメソッドが呼び出されると、オブジェクト参照が設定されていないというエラーが発生します。今回はページ コントロールにアクセスできないことを理解しています。アクセスページ制御に関するこの問題を完全に否定するいくつかの回答を読んだので

今、私は自分のタスクを完了するためにどのアプローチを使用すべきかを知りたいです。

jqueryの価格スライダーを使用してレコードをフィルタリングしますか?

4

1 に答える 1

0

1 つのオプションは、WebMehtod署名を変更してフィルター処理されたレコードを返し、jQuery を使用してそれらを表示することです。これは、機能豊富な html テーブルを構築するためのオープン ソース ツールであるDataTables jQuery プラグインを使用して実現できます。

この JavaScript サンプル コードは、jQuery を使用して DataTable を設定および入力する方法を示しています。

于 2012-07-30T02:35:24.850 に答える