Dexpress 中 grid的使用
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的使用的更多相关文章
- EXTJS中grid的数据特殊显示,不同窗口的数据传递
//EXTJS中grid的数据特殊显示renderer : function(value, metaData, record, rowIndex, colIndex, store, view) { v ...
- WPF中Grid布局
WPF中Grid布局XMAl与后台更改,最普通的登录界面为例. <Grid Width="200" Height="100" > <!--定义 ...
- Ext中Grid重新load设置URL
一.前言 Extjs中grid网格有时候需要重新加载,加载的时候对应不同的URL,什么情况出现:有需要我们在添加附件的时候,添加完成了附件,需要把另一个show添加的数据重新加载到grid中,而 ...
- kendo ui中grid页面参数问题
kendo ui 中grid 算是最长用的控件之一,当使用分页效果时,我们要传递分页参数与自己定义的参数如: var dataSource = new kendo.data.DataSource({ ...
- 理解css中Grid布局,在项目中如何实现grid页面布局
简介 CSS中Grid是一种二维网格式布局方式.我们常规使用table.float.position.inline-block等布局,但它们遗漏了很多功能,例如垂直居中.后来css3中flexbox的 ...
- Winform中Grid跨行复制一列
Private Sub DataCopyToGrid() '判断剪切板中是否存在内容 If Clipboard.ContainsText Then Dim str = Clipboard.GetTex ...
- HTML5 Web app开发工具Kendo UI Web中Grid网格控件的使用
Kendo UI Web中的Grid控件不仅可以显示数据,并对数据提供了丰富的支持,包括分页.排序.分组.选择等,同时还有着大量的配置选项.使用Kendo DataSource组件,可以绑定到本地的J ...
- NSS_04 extjs中grid接收datetime类型参数列
今天在做用户列表时发现, asp.net mvc3的控制器在返回JsonResult结果时, 会把对象内的DateTime类型成员,解析为类似于\/Date(1238606590509)\/的格式 , ...
- [King.yue]Ext中Grid得到选择行数据的方法总结
(1)grid.getStore().getRange(0,store.getCount()); //得到grid所有的行 (2)grid.getSelectionModel().getSele ...
随机推荐
- 建表过程-列名&列类型&修改表B
怎么建表? 主键 名称 重量 价格 生产日期 保质期 产地 种类 分析:我们只要把第一行的表头建好后,这张表也就完成了. 术语:建表的过程就是声明字段过程 ...
- Linux下文件的三种时间戳
Linux下文件的三种时间标记 三种时间对应关系表 column column column 访问时间 Access atime 修改时间 Modify mtime 状态改动时间 Change cti ...
- ****基于H5的微信支付开发详解[转]
这次总结一下用户在微信内打开网页时,可以调用微信支付完成下单功能的模块开发,也就是在微信内的H5页面通过jsApi接口实现支付功能.当然了,微信官网上的微信支付开发文档也讲解的很详细,并且有实现代码可 ...
- 《Scalable IO in Java》笔记
Scalable IO in Java http://gee.cs.oswego.edu/dl/cpjslides/nio.pdf 基本上所有的网络处理程序都有以下基本的处理过程:Read reque ...
- persistence.xml文件的妙处
在上家公司,经常要做的一个很麻烦的事就是写sql脚本, 修改了表结构,比如增加一个新字段的时候,都必须要写sql并放入指定目录中, 目的就是为了便于当我们把代码迁移到其他数据库中的时候,再来执行这些s ...
- js获取css中的样式
众所周知,obj.style只能够获取 <div id="a" style="width:100px;"></div> 结构上的样式 如 ...
- Python 学习第十七天 jQuery
一,jQuery 知识详解 利用jquery 查找元素,操作元素 1,jquery 引入 <!DOCTYPE html> <html lang="en"> ...
- android textView 总是有paddingtop怎么解决
android的TextView即使设置wrap_content,如果打开开发者模式->显示布局边界,能看到textView还是存在paddingTop, 解决方法: android:inclu ...
- Servlet规范简介——web框架是如何注入到Servlet中的
Servlet规范简介--web框架是如何注入到Servlet中的 引言 Web框架一般是通过一个Servlet提供统一的请求入口,将指定的资源映射到这个servlet,在这个servlet中进行框架 ...
- 返水bug-备用
NOOK(N) CSBFB(25) off(Y) QQ(2652880032) G(1) off1(Y) QQ1(3479301404) G1(1) off2(Y) QQ2(309235846) G2 ...