示例#1
0
        /// <summary>
        /// Runs the field editor.
        /// </summary>
        protected void OnRunFieldEditor()
        {
            var args = ContinuationManager.Current.CurrentArgs as ClientPipelineArgs;

            Assert.IsNotNull(args, "args");
            if (args.IsPostBack)
            {
                if (args.HasResult)
                {
                    string result = args.Result;
                    if (result == "-")
                    {
                        return;
                    }

                    this.SaveInfo(this.ActiveField.Value);
                    this.Info.AddRange(this.Metadata.GetAttributesByNames(result.Split('|')));
                    this.FieldsTree.LoadFromCrmEntry(this.Info);

                    var field = this.Info.Fields.Where(f => !f.Disabled).Last();
                    if (field != null)
                    {
                        this.ActiveField.Value = field.Name;
                        TreeViewExtensions.Select(this.FieldsTree, field.Name);
                    }

                    this.UpdateSettings(this.ActiveField.Value, true);
                    this.SaveInfo(this.ActiveField.Value);
                    AjaxScriptManager.Current.SetInnerHtml(this.TreeViewBorder.ID, this.FieldsTree);
                }
            }
            else
            {
                this.SaveInfo(this.ActiveField.Value);
                var urlString = new UrlString(UIUtil.GetUri("control:Forms.SelectFields"));

                var handle = new UrlHandle();

                handle["values"] = ParametersUtil.NameValueCollectionToXml(this.GetListOfAvailableFields(), true);
                handle["title"]  = ResourceManager.Localize("SELECT_FIELDS");
                handle["text"]   = ResourceManager.Localize("SELECT_FIELDS_DETAILED");
                handle.Add(urlString);

                SheerResponse.ShowModalDialog(
                    urlString.ToString(),
                    string.Empty,
                    string.Empty,
                    ResourceManager.Localize("SELECT_FIELDS_FOR_EXPORT"),
                    true);

                args.WaitForPostBack();
            }
        }
        protected override void OnOK(object sender, EventArgs args)
        {
            var updatedParameters = ParametersUtil.NameValueCollectionToXml(this.Parameters);

            if (string.IsNullOrEmpty(updatedParameters))
            {
                updatedParameters = "-";
            }

            this.SheerService.SetDialogValue(updatedParameters);
            base.OnOK(sender, args);
        }