• SharePointWebControls帮助类


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

    关于作者: 王昕(QQ:475660) 在广州工作生活30余年。十多年开发经验,在Java、即时通讯、NoSQL、BPM、大数据等领域较有经验。
    目前维护的开源产品:https://gitee.com/475660
  • 相关阅读:
    mina中的发送延时
    微服务理论之五:微服务架构 vs. SOA架构
    同步
    JAVA中线程同步的方法(7种)汇总
    http连接管理
    MySQL存储引擎比较
    ZAB与Paxos算法的联系与区别
    syslog之二:syslog协议及rsyslog服务全解析
    微服务理论之六:ESB与SOA的关系
    DBCP连接池原理分析及配置用法
  • 原文地址:https://www.cnblogs.com/starcrm/p/1562662.html
Copyright © 2020-2023  润新知