public static Column BindColumnWithOptions(Column column, OptionSetBindingOptions options) { column.Editor = EditorFactory; column.Formatter = Formatter; column.Options = options; return column; }
public override void Init(System.Html.Element element, Func <object> valueAccessor, Func <System.Collections.Dictionary> allBindingsAccessor, object viewModel, object context) { // Get the text box element jQueryObject select = jQuery.FromElement(element).Find(".sparkle-input-optionset-part"); jQueryEventHandler onChangeHandler = delegate(jQueryEvent e) { Observable <OptionSetValue> observable = (Observable <OptionSetValue>)valueAccessor(); string newValue = select.GetValue(); int? newValueInt = null; if (!String.IsNullOrEmpty(newValue)) { newValueInt = int.Parse(newValue); } // Set the optionset value OptionSetValue newValueOptionSetValue = new OptionSetValue(newValueInt); newValueOptionSetValue.Name = select.Find("option:selected").GetText(); observable.SetValue(newValueOptionSetValue); }; select.Change(onChangeHandler); allBindingsAccessor()["optionsValue"] = "value"; allBindingsAccessor()["optionsText"] = "name"; OptionSetBindingOptions optionSetOptions = (OptionSetBindingOptions)((object)allBindingsAccessor()["optionSetOptions"]); // Create a value accessor for the optionset options Func <List <OptionSetItem> > optionsValueAccessor = delegate() { return(MetadataCache.GetOptionSetValues(optionSetOptions.entityLogicalName, optionSetOptions.attributeLogicalName, optionSetOptions.allowEmpty)); }; Script.Literal("ko.bindingHandlers.options.update({0},{1},{2},{3},{4})", select.GetElement(0), optionsValueAccessor, allBindingsAccessor, viewModel, context); //Script.Literal("return { controlsDescendantBindings: true };"); }
public static Column BindColumn(Column column, string entityLogicalName, string attributeLogicalName, bool allowEmpty) { column.Editor = EditorFactory; column.Formatter = Formatter; OptionSetBindingOptions opts = new OptionSetBindingOptions(); opts.attributeLogicalName = attributeLogicalName; opts.entityLogicalName = entityLogicalName; opts.allowEmpty = allowEmpty; column.Options = opts; return column; }
public static void Init() { PageEx.MajorVersion = 2013; jQuery.OnDocumentReady(delegate() { ValidationApi.RegisterExtenders(); // Init settings OrganizationServiceProxy.GetUserSettings(); SimpleEditableGridViewModel vm = new SimpleEditableGridViewModel(); // Create Grid GridDataViewBinder dataViewBinder = new GridDataViewBinder(); dataViewBinder.AddCheckBoxSelectColumn = true; dataViewBinder.SelectActiveRow = true; dataViewBinder.MultiSelect = false; List<Column> columns = new List<Column>(); EditorFactory textEditor = (EditorFactory)Script.Literal("Slick.Editors.Text"); XrmTextEditor.BindColumn(GridDataViewBinder.AddColumn(columns, "Title", 150, "title")); XrmTextEditor.BindColumn(GridDataViewBinder.AddColumn(columns, "Author", 150, "author")); XrmDateEditor.BindColumn(GridDataViewBinder.AddColumn(columns, "Published", 150, "publishdate"), true); XrmMoneyEditor.BindColumn(GridDataViewBinder.AddColumn(columns, "Price", 150, "price"), 0, 100); XrmNumberEditor.BindColumn(GridDataViewBinder.AddColumn(columns, "Copies", 150, "numberofcopies"), 0, 1000, 0); XrmLookupEditorOptions languageLookupOptions = (XrmLookupEditorOptions)XrmLookupEditor.BindColumn(GridDataViewBinder.AddColumn(columns, "Language", 150, "language"), vm.GetLanguages, "id", "name", null).Options; languageLookupOptions.showImage = false; OptionSetBindingOptions formatBindingOptions = new OptionSetBindingOptions(); formatBindingOptions.allowEmpty = true; formatBindingOptions.GetOptionSetsDelegate = vm.GetFormats; XrmOptionSetEditor.BindColumnWithOptions(GridDataViewBinder.AddColumn(columns, "Format", 150, "format"), formatBindingOptions); XrmDurationEditor.BindColumn(GridDataViewBinder.AddColumn(columns, "Audio Length", 150, "audiolength")); XrmTimeEditor.BindColumn(GridDataViewBinder.AddColumn(columns, "Start Time", 150, "starttime")); Grid grid = dataViewBinder.DataBindXrmGrid(vm.Books, columns, "booksGridContainer", null, true, true); ViewBase.RegisterViewModel(vm); Window.SetTimeout(delegate() { vm.LoadBooks(); grid.ResizeCanvas(); }, 0); }); }