protected void _setSelection(Object value) { var v_selection = value as VSelection; if (v_selection == null){ if(this._selection is VSingleSelection) v_selection = new VSingleSelection { Value = value }; else v_selection = new VMultiSelection { Value = value }; } if (this._selection == v_selection) { if (this._selection is VSingleSelection) { var v_sel = this._selection as VSingleSelection; this._txt.Text = "поиск..."; this._get_selector((s) => { s.GetSelection(v_sel, (is_found, args) => { if (is_found == true) { v_sel.Display = args.selection.Cast<VSingleSelection>().ValueRow[this.DisplayField] as String; this._onSelectionChanged(); } else { v_sel.Value = null; v_sel.Display = null; this._onSelectionChanged(); } }); }); } else this._onSelectionChanged(); return; } if (!v_selection.GetType().Equals(this._selection.GetType())) throw new Exception("Несовместимость типов!"); if (this._selection is VSingleSelection) { var v_sel = this._selection as VSingleSelection; var v_in_sel = v_selection as VSingleSelection; v_sel.Value = v_in_sel.ValueRow[this.ValueField]; v_sel.Display = v_in_sel.ValueRow[this.DisplayField] as String; v_sel.ValueRow = v_in_sel.ValueRow; this._onSelectionChanged(); } else { var v_sel = this._selection as VMultiSelection; var v_in_sel = v_selection as VMultiSelection; if (v_sel != null) { v_sel.Value = v_in_sel.Value; v_sel.filterParams = (Params)v_in_sel.filterParams.Clone(); this._onSelectionChanged(); } } }
public static JsonStoreFilter CreFromSelection(VSingleSelection selection) { if (selection != null) { var locate = new JsonStoreFilter() { FromPosition = 0 }; locate.Items.Add(new JSFilterItemCondition { FieldName = selection.ValueField, CmpOperator = JSFilterComparisionOperatorType.Eq, FieldValue = selection.Value }); return locate; } else return null; }