using System;
using System.Collections.Generic;using System.Linq;using System.Text;using Microsoft.SharePoint.WebControls;using System.Web.UI.WebControls;using System.Web.UI;using Microsoft.SharePoint;namespace X.WebParts.UploadDocument
{ class SharePointWebControls { /// <summary> /// 返回控件 /// </summary> public static Control GetSharePointControls(SPField field, SPList list, SPListItem item, SPControlMode mode) { // 检查是否隐藏 if (field == null || field.FieldRenderingControl == null || field.Hidden) return null;try
{ BaseFieldControl webControl = field.FieldRenderingControl; webControl.ListId = list.ID; webControl.ItemId = item.ID; webControl.FieldName = field.Title; webControl.ID = GetControlID(field); webControl.ControlMode = mode;return webControl;
} catch (Exception ex) { var errorLabel = new Label { ID = "ErrorLabel", Text = string.Format("控件错误:<br/>{0}", ex) }; return errorLabel; } }/// <summary>
/// 返回控件对应的值 /// </summary> public static object GetSharePointControlValue(ControlCollection Controls, SPField field) { if (Controls == null) { return null; }// 控件ID
string controlID = GetControlID(field);foreach (Control control in Controls)
{ Control returnObject = control.FindControl(controlID); // 取值 if (returnObject != null && returnObject is BaseFieldControl) { return ((BaseFieldControl)returnObject).Value; } }return null;
} /// <summary> /// 返回控件对应的值 /// </summary> public static object GetSharePointControlValue(Control Control, string controlID) { if (Control == null) { return null; } Control returnObject = Control.FindControl(controlID); if (returnObject != null && returnObject is BaseFieldControl) { return ((BaseFieldControl)returnObject).Value; }return null;
} public static Control FindControlRecursive(Control control, string controlID) { Control returnObject = control.FindControl(controlID); return returnObject; }private static string GetControlID(SPField field)
{ // unique id return System.Guid.NewGuid().ToString() + field.InternalName; } }}