private void LoadScreenDetailList(string screenCD, string langCD, string keyFilter) { try { ScreenDetailMaintenanceController ctlScreenDetail = new ScreenDetailMaintenanceController(); //ScreenDetailMaintenanceUIDM uidmScreenDetail = new ScreenDetailMaintenanceUIDM(); DataTable dt = ctlScreenDetail.LoadScreenDetailWithOriginalCaptionByLangCD(screenCD, langCD); DataTable dtView = dt.Clone(); if (keyFilter != string.Empty) { //get only the rows you want DataRow[] results = dt.Select(string.Format("CONTROL_CAPTION LIKE '%{0}%'", keyFilter)); //populate new destination table foreach (DataRow dr in results) { dtView.ImportRow(dr); } } else { foreach (DataRow dr in dt.Rows) { dtView.ImportRow(dr); } } fpScreenDetailList.DataSource = dtView; shtScreenDetailList.Columns[(int)eColScreenDetail.ORIGINAL_CAPTION].Locked = true; shtScreenDetailList.Columns[(int)eColScreenDetail.DISPLAY_CAPTION].Locked = false; } catch (ValidateException err) { for (int i = 0; i < err.ErrorResults.Count; i++) { MessageBox.Show(err.ErrorResults[i].Message.MessageDescription); err.ErrorResults[i].FocusOnControl(); } } catch (BusinessException err) { MessageDialog.ShowBusiness(this, err.Error.Message.MessageDescription); } catch (Exception ex) { MessageDialog.ShowBusiness(this, ex.Message); } }