Example #1
0
        public override void ApplyValue(Dictionary <string, object> item, object state)
        {
            DateTime previousValue = (DateTime)item[_args.Column.Field];
            DateTime newValue      = (DateTime)state;

            // If the existing value is null, set the default time
            if (previousValue == null)
            {
                XrmDateBindingOptions options = GetDateBindingOptions(_args.Column);
                previousValue = new DateTime(1900, 1, 1, options.Hour != null ? options.Hour.Value :0, options.Minute != null? options.Minute.Value : 0);
            }
            DateTimeEx.SetTime(newValue, previousValue);
            item[_args.Column.Field] = newValue;
            this.RaiseOnChange(item);
        }
Example #2
0
        public static XrmDateBindingOptions GetDateBindingOptions(Column columnDef)
        {
            object options = columnDef.Options;
            XrmDateBindingOptions dateOptions = null;

            if (options != null && options.GetType() == typeof(string))
            {
                dateOptions = new XrmDateBindingOptions();
                dateOptions.OverrideUserDateFormat = (string)columnDef.Options;
                return(dateOptions);
            }
            else if (options != null)
            {
                dateOptions = (XrmDateBindingOptions)options;
            }
            else
            {
                dateOptions = new XrmDateBindingOptions();
            }
            return(dateOptions);
        }
        public static void init()
        {
            ContactsEditorViewModel vm = new ContactsEditorViewModel();

            OrganizationServiceProxy.GetUserSettings();
            // Data Bind Grid
            List <Column> columns = GridDataViewBinder.ParseLayout(",entityState,20,First Name,firstname,200,Last Name,lastname,200,Birth Date,birthdate,200,Account Role Code,accountrolecode,200,Number of Children,numberofchildren,100,Currency,transactioncurrencyid,200,Credit Limit,creditlimit,100,Gender,gendercode,100,Owner,ownerid,100,Parent Customer,parentcustomerid,100");

            // Set Column formatters and editors
            columns[0].Formatter = delegate(int row, int cell, object value, Column columnDef, object dataContext)
            {
                EntityStates state = (EntityStates)value;
                return(((state == EntityStates.Changed) || (state == EntityStates.Created)) ? "<span class='grid-edit-indicator'></span>" : "");
            };

            // First Name Column
            XrmTextEditor.BindColumn(columns[1]);

            // Last Name Column
            XrmTextEditor.BindColumn(columns[2]);

            // Birth Date Column
            XrmDateBindingOptions dateOptions = new XrmDateBindingOptions();

            dateOptions.Hour   = 9;
            dateOptions.Minute = 0;
            XrmDateEditor.BindColumn(columns[3], false).Options = dateOptions;

            // Account Code Column
            XrmOptionSetEditor.BindColumn(columns[4], "contact", columns[4].Field, true);

            // Number of Children Column
            XrmNumberEditor.BindColumn(columns[5], 0, 100, 0);

            // Currency Column
            XrmLookupEditor.BindColumn(columns[6], vm.TransactionCurrencySearchCommand, "transactioncurrencyid", "currencyname", "");

            // Credit Limit Column
            XrmMoneyEditor.BindColumn(columns[7], -10000, 10000);

            // Another optionset
            XrmOptionSetEditor.BindColumn(columns[8], "contact", columns[8].Field, true);

            // Owner Column
            XrmLookupEditorOptions options = (XrmLookupEditorOptions)XrmLookupEditor.BindColumn(columns[9], vm.OwnerSearchCommand, "id", "name", "").Options;

            options.showFooter = true;


            // Account Column
            XrmLookupEditorOptions accountLookupOptions = (XrmLookupEditorOptions)XrmLookupEditor.BindColumn(columns[10], vm.AccountSearchCommand, "id", "name", "").Options;

            accountLookupOptions.showFooter           = true;
            accountLookupOptions.footerButton         = new XrmLookupEditorButton();
            accountLookupOptions.footerButton.Label   = "Add New";
            accountLookupOptions.footerButton.Image   = "/_imgs/add_10.png";
            accountLookupOptions.footerButton.OnClick = vm.AddNewAccountInLine;

            // Create Grid
            GridDataViewBinder contactGridDataBinder = new GridDataViewBinder();
            Grid contactsGrid = contactGridDataBinder.DataBindXrmGrid(vm.Contacts, columns, "container", "pager", true, false);

            // Data Bind
            ViewBase.RegisterViewModel(vm);

            Window.SetTimeout(delegate()
            {
                vm.Init();
            }, 0);
        }