主要記錄下由輸入法引發的篩選問題,先寫下用到的屬性(Native是額外的瞭解):編輯器
先貼代碼:ide
function onValueChange(s, e) { if (s.GetSelectedIndex() == -1) { s.SetValue(s.lastChangedValue); return; } }
<h4>不可篩選</h4>
<span>Native="true":組合框控件呈現爲標準的HTML下拉列表框,默認爲false</span><br />
<dxe:ASPxComboBox ID="ASPxComboBox1" Width="200" ClientInstanceName="ASPxComboBox1"
runat="server" ValueField="Code" TextField="Name" Native="true">
</dxe:ASPxComboBox><br />
<span>Native="true",默認爲false</span>
<dxe:ASPxComboBox ID="ASPxComboBox2" Width="200" ClientInstanceName="ASPxComboBox2" runat="server" ValueField="Code" TextField="Name" Native="false"> </dxe:ASPxComboBox> <h4>能夠文字篩選(未考慮簡拼全拼篩選)</h4> <dxe:ASPxComboBox ID="ASPxComboBox3" Width="200" ClientInstanceName="ASPxComboBox3" runat="server" ValueField="Code" TextField="Name" IncrementalFilteringMode="Contains"> </dxe:ASPxComboBox> <h4>能夠文字篩選(未考慮簡拼全拼篩選,輸入法引發的篩選異常)</h4> <dxe:ASPxComboBox ID="ASPxComboBox4" Width="200" ClientInstanceName="ASPxComboBox4" runat="server" ValueField="Code" TextField="Name" DropDownStyle="DropDown" IncrementalFilteringMode="Contains"> <ClientSideEvents SelectedIndexChanged="onValueChange" /> </dxe:ASPxComboBox>
Native屬性的效果:函數
添加篩選功能,要用到IncrementalFilteringMode屬性。當值爲DropDownList時,有些輸入法在拼音輸入時文本直接落在文本框內,DropDownList要求文本框內的值要與列表內的選項匹配才能存活於文本框內,不然就會被自動清除,因此咱們拼音輸入法搜索時能搜到但界面效果很差,看不到輸入的文本。spa
當值爲DropDown時效果仍是不錯的,能夠輸入非列表選項裏的值,若是隻容許文本框裏的值必須包含在下拉列表裏,能夠添加事件ClientSideEvents,用函數onValueChange控制,若不存在下拉列表裏,賦值爲空或者以前的選項(例中爲以前的選項)3d