Dev asp.net组件中的ASPxComboBox可以方便的根据输入内容进行过滤,不过对于数据量较大或者用户数较多的情况下,这个功能会给服务器带来严重的负担,因此我们应该输入自己想要查询的字符串时才进行过滤操作。要实现该功能,需要对OnItemRequestedByValue和OnItemRequestedByValue这两个事件进行处理,同时将IncrementalFilteringDelay设置成足够大。
<dx:ASPxComboBox ID="FEmpNo_FV" runat="server" EnableCallbackMode="true" CallbackPageSize="10" TextFormatString="{1}" IncrementalFilteringDelay="100000" IncrementalFilteringMode="Contains" DropDownStyle="DropDownList" OnItemsRequestedByFilterCondition="FEmpNo_FV_ItemsRequestedByFilterCondition" OnItemRequestedByValue="FEmpNo_FV_ItemRequestedByValue"> <ClientSideEvents KeyDown="FEmpNo_KeyDown" /> <Columns> <dx:ListBoxColumn FieldName="FEmpNo" Caption="员工编码" /> <dx:ListBoxColumn FieldName="FName" Caption="员工姓名" /> <dx:ListBoxColumn FieldName="FDeptName" Caption="部门名称" /> </Columns></dx:ASPxComboBox>
//防止回车时事件冒泡
function FEmpNo_KeyDown(s, e) { if (e.htmlEvent.keyCode == 13) { ASPxClientUtils.PReventEventAndBubble(e.htmlEvent); s.filterStrategy.Filtering(); }}
新闻热点
疑难解答