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

在项目开发中,并不是每个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);
        }

代码效果:


.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

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

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

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

代码使用:

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

希望有所帮助!
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

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

时间: 2024-10-21 12:11:45

[DevExpress]条件设置GridControl RepositoryItem是否可编辑的相关文章

网格部件中,根据某一个列的条件设置整行是否可编辑的参考示例

度量快速开发平台在网格部件构建中,有这样的需求,比如网格中根据条件"未审核"的数据,这一行都可以编辑调整,"已审核"的数据,这一行数据都不能修改.这种需求在日常构建中也是很多的.大家知道度量快速开发平台中有两个熟悉的方法来控制网格部件的读写.网格部件1.只读=True 网格部件1.只读=False 这个是整体控制网格部件是否可以写或者是只能读,需要放在网格部件1.RefreshData()之前才有效果. 网格部件1.SetFieldReadOnly("字段

ALV 中根据条件设置某个cell 是否可编辑

*&---------------------------------* *& Report  Z_TEST_ZS13 *& *&---------------------------------* *& *& *&---------------------------------* REPORT  Z_TEST_ZS13. *&---------------------------------* *& Report  ZDEMO_A

按条件设置gridcontrol 单元格属性

等价代码设置:(注意这里使用都是FieldName, 即绑定对象的字段名) var cn = new StyleFormatCondition(FormatConditionEnum.Expression); cn.Expression = "[ProduceName] !=null"; cn.Column = gridView4.Columns["Process"]; cn.ApplyToRow = true; cn.Appearance.BackColor =

雷林鹏分享:jQuery EasyUI 数据网格 - 条件设置行背景颜色

jQuery EasyUI 数据网格 - 条件设置行背景颜色 本教程将向您展示如何根据一些条件改变数据网格(datagrid)组件的行样式.当 listprice 值大于 50 时,我们将为该行设置不同的颜色. 数据网格(datagrid)的 rowStyler 函数的设计目的是允许您自定义行样式.以下代码展示如何改变行样式: url="data/datagrid_data.json" singleSelect="true" fitColumns="tru

设置gridcontrol的焦点行

private void gridView1_DoubleClick(object sender, EventArgs e)        {            try            {                DataRow dradd = gridView1.GetDataRow(gridView1.FocusedRowHandle);                //params object[]                DataRow dr = dtselect

asp.net 微信企业号办公系统-流程设计--流转条件设置(路由)

当一个步骤后面有多个步骤时,可以设置为根据设置条件系统自动判断该流向哪些步骤,也叫路由. 工作流没有单独的路由步骤来设置条件,流程条件通过双击连线弹出条件设置框来设置. 1.sql条件 即通过sql条件来判断条件是否满足,条件对应的表为流程对应的表. 2.组织机构 通过当前人员在组织机构中的关系来判断条件是否满足. 3.自定义方法 该方法的使用和参数与步骤中的事件相同. 注意:如果要使设置的条件生效需要在步骤设置中将流转类型设置为:系统控制 系统会根据您设置的条件自动判断该发送到哪些步骤.

.NET开源工作流RoadFlow-流程设计-流转条件设置(路由)

当一个步骤后面有多个步骤时,可以设置为根据设置条件系统自动判断该流向哪些步骤,也叫路由. roadflow没有单独的路由步骤来设置条件,流程条件通过双击连线弹出条件设置框来设置. 1.sql条件 即通过sql条件来判断条件是否满足,条件对应的表为流程对应的表. 2.组织机构 通过当前人员在组织机构中的关系来判断条件是否满足. 3.自定义方法 该方法的使用和参数与步骤中的事件相同. 注意:如果要使设置的条件生效需要在步骤设置中将流转类型设置为:系统控制 系统会根据您设置的条件自动判断该发送到哪些步

JQuery EasyUI DataGrid根据条件设置表格行样式(背景色)

1.javascript定义函数返回样式 <script type="text/javascript"> //根据条件设置表格行背景颜色 function setRowBgColor(index, row) { if (row.ERROR_INFO != null && row.ERROR_INFO != "") { return 'background-color:yellow;color:black;'; } } </scrip

DevExpress中的GridControl控件设置了列Readonly后,想双击弹出明细的实现

OptionsBehavior.Editable = true时,会有二个对象触发事件:view触发ShownEditor 事件(第一单击时)和内置编辑器的DoubleClick事件所以必须处理这二个事件: private void gridView1_ShownEditor(object sender, System.EventArgs e){    DevExpress.XtraGrid.Views.Grid.GridView view = sender as DevExpress.Xtra