grid 中加入checkbox

Run desiger

Columns

ColumnEdit中选择checkbox

此时我们要在后台手动指定一个数据列如下代码:

 dtRebatesReport.Columns.Add("MutiSelect", System.Type.GetType("System.Boolean")).DefaultValue = false;
dtRebatesReport.Columns.Add("PAYMENTSTATE1", System.Type.GetType("System.Boolean")).DefaultValue = false;
for (int i = ; i < dtRebatesReport.Rows.Count; i++)
{
DataRow dr = dtRebatesReport.Rows[i];
if (dr["PAYMENTSTATE"].ToString() == "")
{
dr["PAYMENTSTATE1"] = false;
}
else
{
dr["PAYMENTSTATE1"] = true;
} }

这里后台如果返回的是int数据,一定要手动转为bool  后台返回true不可用。

grid.GetRowCellValue(i,columnsName)    //取得指定单元格文件

grid.SetRowCellValue(i,columnsName,value)    //设定单元格传

如果gird中加入combox  找到combox名称。直接给值即可初始化

如下我们可以判断是否可编辑

 /// <summary>
/// 行焦点发生改变时,是否可编辑,可删除
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void gvInComeDetailReport_FocusedRowChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e)
{
GridView gv = sender as GridView;
if (e.FocusedRowHandle >= )
{
bool CanEdit = Convert.ToBoolean(gv.GetRowCellValue(e.FocusedRowHandle, this.gridColumn16));
if (CanEdit)
{
//已付 时不可编辑
this.gridColumn11.OptionsColumn.AllowEdit = false;
this.gridColumn12.OptionsColumn.AllowEdit = false;
this.gridColumn14.OptionsColumn.AllowEdit = false;
this.gridColumn15.OptionsColumn.AllowEdit = false;
}
else
{
this.gridColumn11.OptionsColumn.AllowEdit = true;
this.gridColumn12.OptionsColumn.AllowEdit = true;
this.gridColumn14.OptionsColumn.AllowEdit = true;
this.gridColumn15.OptionsColumn.AllowEdit = true;
} }
}

如下我们在更改单元格的值 时可计算

 private void gvInComeDetailReport_CellValueChanging(object sender, DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs e)
{
//选择列值改变
if (e.Column == this.gridColumn11)
{
if (!CommonUtils.isEmpty(CommonUtils.ObjectToString(e.Value)))
{
//折扣金额
string str1=CommonUtils.ObjectToString(gvInComeDetailReport.GetRowCellValue(e.RowHandle, this.gridColumn9));
string str2 = CommonUtils.ObjectToString(e.Value);
string money = string.IsNullOrEmpty(str1) ? "" : str1;
string SendMoney = string.IsNullOrEmpty(str2) ? "" : str2;
decimal v1, v2 = ;
decimal zkMoney = ;
if (decimal.TryParse(money, out v1))
{
zkMoney = v1;
}
decimal CellMoney = ; if (decimal.TryParse(SendMoney, out v2))
{
CellMoney = v2;
} gvInComeDetailReport.SetRowCellValue(e.RowHandle, this.gridColumn14,zkMoney+CellMoney); }
}
}

如下设置单元格颜色

        private void gvInComeDetailReport_RowCellStyle(object sender, RowCellStyleEventArgs e)
{
GridView gv = sender as GridView;
if (e.RowHandle >= )
{
bool CanEdit = Convert.ToBoolean(gv.GetRowCellValue(e.RowHandle, this.gridColumn16));
if (CanEdit)
{
e.Appearance.BackColor = Color.LightGray;
}
else
{
//获取所在行指定列的值
string state = this.gvInComeDetailReport.GetRowCellValue(e.RowHandle, "MutiSelect").ToString();
//比较指定列的状态
if (state == "True")
{
e.Appearance.BackColor = Color.BlueViolet;//设置此行的背景颜色
}
else
{
e.Appearance.BackColor = Color.White;//设置此行的背景颜色
} } }
}

合计各列数值

 decimal _customSum = ;
private void gvInComeDetailReport_CustomSummaryCalculate(object sender, DevExpress.Data.CustomSummaryEventArgs e)
{
GridView gridView = sender as GridView;
DataRow dr = gridView.GetDataRow(e.RowHandle);
if ("REBATEAMOUNT".Equals((e.Item as GridSummaryItem)) ||
"ADJUSTMENTAMOUNT".Equals((e.Item as GridSummaryItem).FieldName) ||
"ACTUALAMOUNT".Equals((e.Item as GridSummaryItem).FieldName)
)
{ if (!CommonUtils.isEmpty(CommonUtils.ObjectToString(dr[(e.Item as GridSummaryItem).FieldName])))
{
_customSum += Convert.ToDecimal(dr[(e.Item as GridSummaryItem).FieldName]);
}
e.TotalValue = _customSum;
} }

设置冻结列(左冻结)
gridView1.Columns[0].Fixed= DevExpress.XtraGrid.Columns.FixedStyle.Left;

设某一列文字和标题局中显示
gridView1.Columns[0].AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
gridView1.Columns[0].AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;

设置自动增加的行号,需要先添加给gridview添加事件CustomDrawRowIndicator

private void gridview_CustomDrawRowIndicator(object sender,                            DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventArgs e)
{
if (e.Info.IsRowIndicator && e.RowHandle >= )
e.Info.DisplayText = (e.RowHandle + ).ToString();
}

设置列宽

  this.gvNetAgentDailyReport.IndicatorWidth = Convert.ToInt32(Math.Ceiling(
CommonUtils.ObjectToString(this.dtNetAgentDailyReport.Rows.Count).Length * 7.1)) + ;

Dexpress 中 grid的使用的更多相关文章

  1. EXTJS中grid的数据特殊显示,不同窗口的数据传递

    //EXTJS中grid的数据特殊显示renderer : function(value, metaData, record, rowIndex, colIndex, store, view) { v ...

  2. WPF中Grid布局

    WPF中Grid布局XMAl与后台更改,最普通的登录界面为例. <Grid Width="200" Height="100" > <!--定义 ...

  3. Ext中Grid重新load设置URL

    一.前言    Extjs中grid网格有时候需要重新加载,加载的时候对应不同的URL,什么情况出现:有需要我们在添加附件的时候,添加完成了附件,需要把另一个show添加的数据重新加载到grid中,而 ...

  4. kendo ui中grid页面参数问题

    kendo ui 中grid 算是最长用的控件之一,当使用分页效果时,我们要传递分页参数与自己定义的参数如: var dataSource = new kendo.data.DataSource({ ...

  5. 理解css中Grid布局,在项目中如何实现grid页面布局

    简介 CSS中Grid是一种二维网格式布局方式.我们常规使用table.float.position.inline-block等布局,但它们遗漏了很多功能,例如垂直居中.后来css3中flexbox的 ...

  6. Winform中Grid跨行复制一列

    Private Sub DataCopyToGrid() '判断剪切板中是否存在内容 If Clipboard.ContainsText Then Dim str = Clipboard.GetTex ...

  7. HTML5 Web app开发工具Kendo UI Web中Grid网格控件的使用

    Kendo UI Web中的Grid控件不仅可以显示数据,并对数据提供了丰富的支持,包括分页.排序.分组.选择等,同时还有着大量的配置选项.使用Kendo DataSource组件,可以绑定到本地的J ...

  8. NSS_04 extjs中grid接收datetime类型参数列

    今天在做用户列表时发现, asp.net mvc3的控制器在返回JsonResult结果时, 会把对象内的DateTime类型成员,解析为类似于\/Date(1238606590509)\/的格式 , ...

  9. [King.yue]Ext中Grid得到选择行数据的方法总结

    (1)grid.getStore().getRange(0,store.getCount());    //得到grid所有的行 (2)grid.getSelectionModel().getSele ...

随机推荐

  1. JAVA BigDecimal 小数点处理

    1,保留两位小数 方法一:{ double c=3.154215; java.text.DecimalFormat myformat=new java.text.DecimalFormat(" ...

  2. 3dmax导出到blend或者vs中

    使用3dmax将模型导成obj格式的时候,可以导出材质或者不导出. 1.如果不导出,则按下图不勾选导出材质和创建材质库选项.这样生成的obj是可以直接再blend或者vs中打开的. 2.如果导出,不仅 ...

  3. __clone()方法和传址区别

    示例: <?php class Computer{ public $name = '联想'; public function _run(){ return '运行中'; } } $comp1 = ...

  4. 第五课 CSS3 and H5 知识点

    概要:CSS3美化样式.自定义字体图标.滤镜设置.CSS3选择器.transform2D转换.新增表单控件.vaild表单验证.表单样式美化等. 属性选择器: E[attr]只使用属性名,但没有确定任 ...

  5. Web GIS离线解决方案

    1.背景 在离线环境下(局域网中)的GIS系统中如何使用地图?这里的地图主要指的是地图底图,有了底图切片数据,我们就可以看到地图,在上面加上自己的业务数据图层,进行相关操作. 要在离线环境下看到GIS ...

  6. mysql命令行修改字符编码

    1.修改数据库字符编码 mysql> alter database mydb character set utf8 ; 2.创建数据库时,指定数据库的字符编码 mysql> create ...

  7. Xamarin 与VS2015RC(xamarin 3.11.450) 报空指针错误。

    在Android开发中发现的一个“初步认为是调试器的bug”. 于早些时候发布在公司论坛上,传送门: http://www.newlifex.com/showtopic-1400.aspx 使用vs2 ...

  8. 整理:深度学习 vs 机器学习 vs 模式识别

    http://www.csdn.net/article/2015-03-24/2824301 近200篇机器学习&深度学习资料分享(含各种文档,视频,源码等) http://developer ...

  9. Flex Layout Attribute

    GitHub: https://github.com/StefanKovac/flex-layout-attribute 引入基本的样式,可以更好的布局,可以在线制作: http://progress ...

  10. D3中动画(transition函数)的使用

    关于transition的几个基本点: 1. transition()是针对与每个DOM element的,每个DOM element的transition并不会影响其他DOM element的tra ...