ASPxComboBox-通过回车过滤结果集

时间:2022-02-02 18:17:19

  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();
    }
}