zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    用javascript实现html页面之间的参数传递
    个性的研究
    [luogu1967] 货车运输
    mscorwks.dll 没有被指定在Windows上运行,错误状态 0xc000012f
    dom4j解析xml时报:系统找不到指定路径
    The strip's most beautiful gril,rendezvous never a cover;
    无法在自定义编辑器中开发TransactSQL文件
    Default code generation is disabled for model。。。
    使用IE9艰辛历程之从什么网页都打不开到什么都秒开的传奇
    Metro IE10快捷方式 不小心删了
  • 原文地址:https://www.cnblogs.com/starcrm/p/1562662.html
Copyright © 2011-2022 走看看