示例#1
0
 public static Column BindColumnWithOptions(Column column, OptionSetBindingOptions options)
 {
     column.Editor = EditorFactory;
     column.Formatter = Formatter;
     column.Options = options;
     return column;
 }
示例#2
0
        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 };");
        }
示例#3
0
 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);
                
            });
        
        }