/// <summary>
        /// get list array like "title@internalname@fileType"
        /// </summary>
        /// <param name="spcontext"></param>
        /// <param name="hidden">True contain Hidden field</param>
        /// <param name="listTitle"> listTitle</param>
        /// <returns></returns>
        public ArrayList getListFields(ClientContext spcontext, bool hidden, string listTitle)
        {
            ArrayList fieldArr = new ArrayList();

            if (!string.IsNullOrEmpty(listTitle))
            {
                var web        = spcontext.Web;
                var listFields = spcontext.LoadQuery(web.Lists.GetByTitle(listTitle).Fields);
                spcontext.ExecuteQuery();
                foreach (var field in listFields)
                {
                    // Field fields = field;
                    FieldProperty fpObj = new FieldProperty();
                    fpObj.title        = field.Title;
                    fpObj.internalName = field.InternalName;
                    fpObj.typeAsString = field.TypeAsString;
                    // var fieldInfo = field.Title + "@" + field.InternalName + "@" + field.TypeAsString;
                    //如果是Outlook类型,获取 查阅项源list GUID,及源字段内部名称
                    if (field.TypeAsString.Contains("ook"))
                    {
                        FieldLookup flp = field as FieldLookup;
                        if (flp != null)
                        {
                            //源list GUID
                            fpObj.lookupListID = flp.LookupList;
                            //   var listId = flp.LookupList;
                            //源字段 内部名称
                            fpObj.lookupFieldInterNalName = flp.LookupField;
                            //  var listField = flp.LookupField;
                            //显示名称@内部名称@字段类型@查阅项源list GUID@查阅项源字段内部名称
                            //   fieldInfo += "@" + listId + "@" + listFields;
                        }
                    }

                    //Filter readonly and hidden Fields ,Computed(内容类型)  Attachments(附件类型)
                    if (!field.ReadOnlyField && field.TypeAsString != "Computed" && field.TypeAsString != "Attachments")
                    {
                        if (!hidden)
                        {
                            if (!field.Hidden)
                            {
                                fieldArr.Add(fpObj);
                            }
                            else
                            {
                                continue;
                            }
                        }
                        else
                        {
                            fieldArr.Add(fpObj);
                        }
                    }
                }
            }


            return(fieldArr);
        }
Пример #2
0
        public void getListFields(object obj)
        {
            //CheckedListBox cklb = new CheckedListBox();
            //cklb.Name = "cklbFields";
            //cklb.Location = new Point(10,10);
            //cklb.Height = 50;
            //panelField.Controls.Add(cklb);
            //this.cklbFields.Height = 50;
            if (_getInfo != null)
            {
                _fieldArr = _getInfo.getListFields(_context, this.cbxHidden.Checked, obj.ToString());
                this.cklbFields.Items.Clear();
                int p          = 0;
                int initPointY = 10;
                int height     = this.cklbFields.Height;
                foreach (var item in _fieldArr)
                {
                    FieldProperty fp = (FieldProperty)item;
                    int           y  = initPointY;
                    this.cklbFields.Items.Add(fp.title);

                    ComboBox cbxS = new ComboBox();
                    cbxS.Name = "cbxSourceField" + p;
                    p++;
                    cbxS.Location = new Point(150, y);
                    cbxS.Height   = 23;
                    cbxS.Enabled  = false;
                    this.panelField.Controls.Add(cbxS);
                    initPointY += 22;
                    height     += 20;
                }
                cklbFields.Height = height;
            }
            _runing.Abort();
            Thread.Sleep(5000);
            this.lblRuning.Text = "";
        }