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;
}
}
}