码迷,mamicode.com
首页 > 其他好文 > 详细

[DevExpress]条件设置GridControl RepositoryItem是否可编辑

时间:2014-07-16 15:02:34      阅读:278      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   使用   os   

在项目开发中,并不是每个RepositoryItem都可以编辑,往往是有条件性的,需要譬如当A列等于“AA”的时候,B列才可编辑,实现起来在ShowingEditor事件中最为方便,并且加入toolTip提示显得人性化。

代码如下:

        private void gvLampConfig_ShowingEditor(object sender, System.ComponentModel.CancelEventArgs e)
        {
            GridView _view = sender as GridView;
            if (_view.FocusedColumn.Name == "colSavePowerGp1")//当列等于colSavePowerGp1
            {
                string _type = _view.GetRowCellDisplayText(gvLampConfig.FocusedRowHandle, "OptStatusText_gp1");
                if (!_type.Equals("节能"))//当列OptStatusText_gp1的列值不等于OptStatusText_gp1
                {
                    e.Cancel = true;
                    ShowToolTip(toolTipController, "提示", "当是【调光状态】是节能模式情况,可以设置该值!");
                }
            }
        }
        public static void ShowToolTip(ToolTipController toolTip, string title, string content)
        {
            Point _mousePoint = Control.MousePosition;
            toolTip.ShowHint(content, title, _mousePoint);
        }

代码效果:

bubuko.com,布布扣

为了调高代码复用性,方便后续使用,可以这样子封装一下:

        /// <summary>
        /// 设置RepositoryItem是否可编辑
        /// 说明:
        /// 在ShowingEditor事件中使用
        /// </summary>
        /// <param name="view">GridView</param>
        /// <param name="focusedColumnName">需要设置的列名称</param>
        /// <param name="conditonHanlder">判断委托</param>
        /// <param name="toolTip">ToolTipController</param>
        /// <param name="title">当条件委托成立的时候提示标题</param>
        /// <param name="content">当条件委托成立的时候提示内容</param>
        /// <param name="e">CancelEventArgs</param>
        private void CustomShowingEditorWithToolTip(GridView view, string focusedColumnName, Func<object, bool> conditonHanlder, ToolTipController toolTip, string title, string content, CancelEventArgs e)
        {
            if (view.FocusedColumn.Name.Equals(focusedColumnName))
            {
                if (conditonHanlder(view.GetFocusedRow()))
                {
                    e.Cancel = true;
                    Point _mousePoint = Control.MousePosition;
                    toolTip.ShowHint(content, title, _mousePoint);
                }
            }
        }

代码使用:

        private void gvLampConfig_ShowingEditor(object sender, System.ComponentModel.CancelEventArgs e)
        {
            GridView _view = sender as GridView;
            CustomShowingEditorWithToolTip(_view, "colSavePowerGp1", arg => ((LampSelfRunCfgParamter)arg).OptStatusText_gp1 != "节能", toolTipController, "提示", "当是【调光状态】是节能模式情况,可以设置该值!", e);
        }

希望有所帮助!

[DevExpress]条件设置GridControl RepositoryItem是否可编辑,布布扣,bubuko.com

[DevExpress]条件设置GridControl RepositoryItem是否可编辑

标签:style   blog   http   color   使用   os   

原文地址:http://www.cnblogs.com/Yan-Zhiwei/p/3848199.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!