/// <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); }
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 = ""; }