js實現DropDownList的資料篩選

來源:互聯網
上載者:User

js實現DropDownList的資料篩選
  背景:
      前段時間做項目時遇到了在第三方控制項中進行資料的篩選問題,但用到的第三方控制項提供的篩選並不能很好的滿足我們的需求,然後就自己想辦法完善所需求的資料篩選,通過尋找資料最後決定通過js並結合用到的第三方控制項的屬性和方法實現對DropDownList控制項的資料篩選來完成,以前沒怎麼接寫過js,對其還是比較陌生的,還好通過找資料,最終完成了功能的實現。
  具體實現:
      首先是根據需求確定篩選的列,並根據實際情況寫出綁定的方法名及要觸發的事件,代碼如下:
1. <telerik:RadComboBox ID="RadComboBox3" DataTextField="Rate" DataValueField="Rate" AppendDataBoundItems="true"
2.                             SelectedValue='<%# ((GridItem)Container).OwnerTableView.GetColumn("Rate").CurrentFilterValue %>'
3.                             runat="server" OnClientSelectedIndexChanged="RateListIndexChanged" Width="45px"
4.                             OnLoad="InitRateList" DropDownWidth="80">
5.                             <Items>
6.                                 <telerik:RadComboBoxItem Text="全部" />
7.                             </Items>
8.                         </telerik:RadComboBox>
需要說明下,此第三方控制項中的RadComboBox相當於Asp控制項中的DropDownList,這裡寫好RadComboBox要觸發的事件SelectedValue和方法名RateListIndexChanged。其中的InitRateList是初始化RadComboBox控制項的後台方法一會會提到。
接下來是js實現部分,代碼如下:
 
1. <telerik:RadScriptBlock ID="RadScriptBlock4" runat="server">
2.                             <script type="text/javascript">
3.                                 function RateListIndexChanged(sender, args) {
4.                                     var tableView = $find("<%# ((GridItem)Container).OwnerTableView.ClientID %>");
5.                                     var filterVal = args.get_item().get_value();
6.                                     if (filterVal == "") {
7.                                         tableView.filter("Rate", filterVal, "NoFilter");
8.                                     }
9.                                     else if (filterVal == 0.6) {
10.                                         tableView.filter("Rate", 0.6, "GreaterThanOrEqualTo");
11.                                     }
12.                                     else if (filterVal == "0.35 0.6") {
13.                                         tableView.filter("Rate", "0.35 0.6", "Between");
14.                                     }
15.                                     else if (filterVal == "0.15 0.35") {
16.                                         tableView.filter("Rate", "0.15 0.35", "Between");
17.                                     }
18.                                     else if (filterVal == 0.15) {
19.                                         tableView.filter("Rate", 0.15, "LessThan");
20.                                     }
21.                                 }
22.                             </script>
23.                         </telerik:RadScriptBlock>
這裡是js實現RadComboBox篩選的功能,其中tableView調用的filter方法是RadComboBox內部提供的我們在此借用,具體不做討論。
下面貼出上面提到的初始化RadComboBox的方法InitRateList的代碼:
 
1. //初始化利率列表
2.     public void InitRateList(object sender, EventArgs e)
3.     {
4.         RadComboBox droplist = (RadComboBox)sender;
5.         droplist.Items.Add(new RadComboBoxItem("大於0.6", "0.6"));
6.         droplist.Items.Add(new RadComboBoxItem("0.35-0.6", "0.35 0.6"));
7.         droplist.Items.Add(new RadComboBoxItem("0.15-0.35", "0.15 0.35"));
8.         droplist.Items.Add(new RadComboBoxItem("小於0.15", "0.15"));
9.     }
到處處,整個功能就實現了,不過說到底還是用的第三方控制項提供的js方法的借口,算不上真正的js實現DropDownList的資料篩選吧,大家有興趣可以自己嘗試封裝js的方法實現DropDownList的資料篩選,最後貼出整體效果吧。
 
這裡顯示所有能篩選的資料範圍,
 
這裡是篩選後的結果,圓圈中的篩選條件是0.15-0.35由于格式的控制在此沒有顯示完全。
 
 



摘自 HDDevTeam
 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.