hi
im using
design a radMultiComboBox with 3 column(two column is visible) and one column to select "ValueMember". use the below code for "filtering" :
1.
customerlist.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
2.
CompositeFilterDescriptor compositeFilter =
new
CompositeFilterDescriptor();
3.
FilterDescriptor prodName =
new
FilterDescriptor(
"FullName"
, FilterOperator.Contains,
""
);
4.
compositeFilter.FilterDescriptors.Add(prodName);
5.
compositeFilter.LogicalOperator = FilterLogicalOperator.Or;
6.
this
.customerlist.EditorControl.FilterDescriptors.Add(compositeFilter);
every thing work perfectly, but in my project, when user type the name that not in DB, the application show the messagebox and open new form to add item into database.
private
void
customerlist_KeyDown(
object
sender, KeyEventArgs e)
{
if
(e.KeyCode == Keys.Enter)
{
if
(!
string
.IsNullOrEmpty(customerlist.Text))
{
string
name = customerlist.Text;
rollback:
if
(_db.Customer.Any(p => p.FullName.Contains(customerlist.Text.Trim())))
{
int
id =
int
.Parse(customerlist.SelectedValue.ToString());
var result = _db.Customer.First(p => p.CustomerId == id);
txttel.Text = result.HomeTel;
txtmobile.Text = result.Mobile;
txtaddress.Text = result.Address;
SendKeys.Send(
"{tab}"
);
str =
null
;
}
else
{
RadMessageBox.Show(
this
,
"مشتری جدید باید در لیست مشتریان ثبت شود"
);
using
(FrmAddPerson frm =
new
FrmAddPerson())
{
frm.txtfullname.Text = customerlist.Text;
frm.radGroupBox1.Enabled =
false
;
frm.radGridView1.Enabled =
false
;
frm.ShowDialog();
}
cCustomer();
customerlist.Text = name;
goto
rollback;
}
}
}
}
when user press enter, this code should be work, but radmulticolumncombobox.Text property, is null (" "). while must be show what's user typed in combobox.
for example, in radmulticolumncombobox.Datasource, these exist : john,david,oliver , and user input : jason => radmulticolumncombobox.Text should be = "jason", but it's null.