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(); }}
新聞熱點
疑難解答