public static void LoadItems(AjaxResponse prevResponse, IAjaxMng ajaxMng, ComboBox cbx, String bioCode, Params bioParams, Action<ComboBox, AjaxResponse> callback, Boolean addNullItem, Boolean useCache) { if ((prevResponse != null) && (!prevResponse.Success)) { if (callback != null) callback(cbx, prevResponse); return; } var v_cli = new JsonStoreClient { AjaxMng = ajaxMng, BioCode = bioCode }; CbxItems storedItems = null; if (useCache) storedItems = _restoreItems(bioCode); if (storedItems != null) { _loadItems(cbx, storedItems, addNullItem); if (callback != null) callback(cbx, new AjaxResponse { Success = true }); } else { v_cli.Load(bioParams, (s, a) => { if (a.Response.Success) { var cbxitems = new CbxItems {metadata = v_cli.JSMetadata, ds = v_cli.DS}; if (useCache) _storeItems(bioCode, cbxitems); _loadItems(cbx, cbxitems, addNullItem); } if (callback != null) callback(cbx, a.Response); }); } }
private static void _loadItems(ComboBox cbx, CbxItems items, Boolean addNullItem) { if ((items != null) && (items.metadata.Fields.Count > 1)) { cbx.SelectedValuePath = items.metadata.Fields[0].Name; cbx.DisplayMemberPath = items.metadata.Fields[1].Name; if (addNullItem) { var nullRow = items.NewRow(); nullRow.SetValue(cbx.SelectedValuePath, null); nullRow.SetValue(cbx.DisplayMemberPath, "<не выбрано>"); ((IList)items.ds).Insert(0, nullRow); } cbx.ItemsSource = items.ds; if (addNullItem) cbx.SelectedIndex = 0; } }
private static void _storeItems(String bioCode, CbxItems items) { Utl.StoreUserObjectStrg("cbxItems-" + bioCode, items, new JsonConverter[] { new CbxItemsConverter() }); }