2011-12-20 8 views
1

jqueryオートコンプリートをajax呼び出しで行っています。私は自分のコードの背後のメソッドでフィルタをやっています。私はUIでそれらをフィルタリングしたくありません。どうやってするか。具体的には、ユーザーが 'St.'例えば、私は 'セント'結果に「Saint」と表示されます。しかし、jqueryは結果を「Saint」と表示していません。 jqueryオートコンプリートに「聖」も表示するにはどうすればよいですか?jquery/asp.netオートコンプリートの結果をフィルタリングしないでください

コードのjQueryには.csで背後に

function GetNames(text) { 
$.ajax({ 
type: "POST", 
url: "Default.aspx/GetSchools", 
dataType: "json", 
data: '{ "data":"' + text + '"}', 
contentType: "application/json; charset=utf-8", 
success: function(data) { 
$('#university').autocomplete({ 
source: data.d, 
focus: function(event, ui) { 
$('#university').val(ui.item.Descr); 
return false; 
}, 
select: function(event, ui) { 
$('#university').val(ui.item.Descr); 
$('#universityID').val(ui.item.UnivCode); 
return false; 
} 
}); 
} 
}); 
} 

コードは、それがjqueryui documentation

+0

私たちにあなたのコードを示すなら、私たちはより良く助けることができます –

+0

郵便番号をください! –

+0

がコードを追加しました。 – Shankar

答えて

0

を提出しますはい。 Web上のどこかで、jQueryをおそらく変更できると述べました。コードビハインドで結果をフィルタリングしているので、私はjQueryを何もフィルタリングしないように変更しました。 jquery-ui.jsのオートコンプリート拡張メソッドで

var matcher = new RegExp($.ui.autocomplete.escapeRegex(''), "i"); 

に変更しました。

+0

ソースを設定しましたが、結果をフィルタリングしません。例えば。以前に述べたように、ユーザータイプがJr - iの場合、Juniorも含まれる結果が返されます。私はそれらをjqueryでフィルタリングしたくない。 – Shankar

+0

これはjqueryとは関係ありません。結果はサーバーから取得されます。これは結果を照会する場所です。どのように結果を照会すれば、何がクライアントに返されるかが決まります。 –

+0

結果が返された後でも、すべての値がドロップダウンに表示されるわけではありません。それは私が問題を抱えているところです。上記のコードと可能なハードコードのJrとJuniorが表示された場合、JuniorではなくJrと入力すると、オートコンプリートのドロップダウンにJrのみが表示されます。私はそのフィルタが起こることを望んでいない。 – Shankar

0

の例のようなURLにソースを設定するのと同じくらい簡単であるべき

public static List<DataClass.School> GetSchools(string data) 
     { 
      DataTable dt = (DataTable)HttpContext.Current.Session["Schools"]; 

      data = data.ToLower(); 
      Debug.WriteLine(data); 

      var ret = new List<TestApplication.DataClass.School>(); 
      ret = (from l in dt.AsEnumerable() 
        let s = l["Descr"].ToString().ToLower() 
        where (s.Contains(data) || s.Contains("saint")) 
        select new TestApplication.DataClass.School 
        { 
         Descr = l["Descr"].ToString(), 
         UnivCode = l["UnivCode"].ToString() 
        }).Take(20).ToList(); 

      Debug.WriteLine(ret.Count.ToString()); 

     return ret.ToList(); 
     } 
関連する問題