gridview单元格编辑添加数据
行号
private void gridView1_CustomDrawRowIndicator(object sender, DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventArgs e)
{
e.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
if (e.Info.IsRowIndicator)
{
if (e.RowHandle >= )
{
e.Info.DisplayText = (e.RowHandle + ).ToString();
}
else if (e.RowHandle < && e.RowHandle > -)
{
e.Info.Appearance.BackColor = System.Drawing.Color.AntiqueWhite;
e.Info.DisplayText = "G" + e.RowHandle.ToString();
}
}
}
声明数据源
private BindingList<InvoiceDetail> DataSource;//发票数据源
//初始化数据源
private void frmAddindent_Load(object sender, EventArgs e)
{
this.outTaskListLog.RefreshParent += new RefreshParentHandler((object obj) => { SetForm((OutRequest)obj); });
DataSource = new BindingList<InvoiceDetail>();
dvginfo.DataSource = DataSource;
}
添加新行事件
private void gridView1_InitNewRow(object sender, DevExpress.XtraGrid.Views.Grid.InitNewRowEventArgs e)
{
InvoiceDetail invoiceData = gridView1.GetRow(e.RowHandle) as InvoiceDetail;
invoiceData.Price = ;
invoiceData.Amount = ;
invoiceData.Currency = cbDeclaredCurrency.Text;
invoiceData.Quantity = ;
invoiceData.QuantityUnit = "PCS";
invoiceData.OriginCountryCode = "CN";
}
单元格值,验证,离开事件
private void gridView1_CellValueChanged(object sender, DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs e)
{
if (gridView1.FocusedRowHandle >= || gridView1.IsNewItemRow(gridView1.FocusedRowHandle))
{
if (e.Column.FieldName.Equals("Quantity") || e.Column.FieldName.Equals("Price"))
{
int i = ;
if (gridView1.GetFocusedRowCellValue("Quantity") != null)
{
i = (int)gridView1.GetFocusedRowCellValue("Quantity");
}
decimal d = ;
if (gridView1.GetFocusedRowCellValue("Price") != null)
{
d = Common.Utils.ObjToDecimal(gridView1.GetFocusedRowCellValue("Price"), );
}
decimal dec = i * d;
//设置结果值
gridView1.SetRowCellValue(gridView1.FocusedRowHandle, gridView1.Columns["Amount"], dec);
//gridView1.SetRowCellValue(gridView1.FocusedRowHandle, gridView1.Columns["NumberOfPieces"], e.RowHandle + 1);
}
if (e.Column.FieldName.Equals("Amount"))
{
decimal dAmount = DataSource.Sum(s => s.Amount);
txtDeclared.Text = dAmount.ToString();
}
}
}
private void gridView1_BeforeLeaveRow(object sender, DevExpress.XtraGrid.Views.Base.RowAllowEventArgs e)
{
if (gridView1.GetFocusedRowCellValue("Description") == null || string.IsNullOrWhiteSpace(gridView1.GetFocusedRowCellValue("Description").ToString()))
{
//gridView1.SetFocusedValue(gridView1.GetFocusedRowCellValue(""));
return;
}
if (gridView1.GetFocusedRowCellValue("Quantity") == null || gridView1.GetFocusedRowCellValue("Quantity").ToString() == "0")
{
//gridView1.OptionsView.NewItemRowPosition = NewItemRowPosition.None;
return;
}
if (gridView1.GetFocusedRowCellValue("Price") == null || gridView1.GetFocusedRowCellValue("Price").ToString() == "0")
{
return;
}
if (gridView1.GetFocusedRowCellValue("Amount") == null || gridView1.GetFocusedRowCellValue("Amount").ToString() == "0")
{
return;
}
} private void gridView1_ValidatingEditor(object sender, DevExpress.XtraEditors.Controls.BaseContainerValidateEditorEventArgs e)
{
if (e.Value == null)
{
e.Value = "";
}
string reply = "";
int ireply = -1;
decimal dreply = -1;
if (gridView1.FocusedColumn.FieldName == "Description")
{
if (string.IsNullOrWhiteSpace(e.Value.ToString()))
{
reply = "品名不能为空。";
}
}
if (gridView1.FocusedColumn.FieldName == "Quantity")
{
if (int.TryParse(e.Value.ToString(), out ireply))
{
if (ireply <= 0)
{
reply = "物品数量必须大于零";
}
}
else
{
reply = "物品数量需要输入整数";
} } if (gridView1.FocusedColumn.FieldName == "Price")
{
if (decimal.TryParse(e.Value.ToString(), out dreply))
{
if (dreply <= 0)
{
reply = "单件必须大于零";
}
}
else
{
reply = "单件需要输入数字";
}
} if (gridView1.FocusedColumn.FieldName == "Amount")
{
if (decimal.TryParse(e.Value.ToString(), out dreply))
{
if (dreply <= 0)
{
reply = "金额必须大于零";
} }
else
{
reply = "金额需要输入数字";
}
} if (!string.IsNullOrWhiteSpace(reply))
{
e.ErrorText = reply.ToString();
e.Valid = false;
}
} AppearanceDefault appError = new AppearanceDefault(Color.White, Color.LightCoral, Color.Empty, Color.Red, System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal);
private void gridView1_RowCellStyle(object sender, DevExpress.XtraGrid.Views.Grid.RowCellStyleEventArgs e)
{
object val = gridView1.GetRowCellValue(e.RowHandle, e.Column);
if (gridView1.IsNewItemRow(e.RowHandle))
{
return;
}
else
{
if (e.Column.FieldName == "Description")
{
if (e.CellValue == null || string.IsNullOrWhiteSpace(e.CellValue.ToString()))
{
AppearanceHelper.Apply(e.Appearance, appError);
//ErrorInvoice = true;
}
}
if (e.Column.FieldName == "Quantity")
{
if (e.CellValue == null || e.CellValue.ToString() == "0")
{
AppearanceHelper.Apply(e.Appearance, appError);
//ErrorInvoice = true;
}
}
if (e.Column.FieldName == "Price")
{
if (e.CellValue == null || e.CellValue.ToString() == "0")
{
AppearanceHelper.Apply(e.Appearance, appError);
}
}
if (e.Column.FieldName == "Amount")
{
if (e.CellValue == null || e.CellValue.ToString() == "0")
{
AppearanceHelper.Apply(e.Appearance, appError);
}
}
}
}
单元格控件赋值
#region 发票明细数据
//原产地
gltxtCountryOrigin.DataSource = cname;//原产地二字码
this.gltxtCountryOrigin.NullText = "";
this.gltxtCountryOrigin.DisplayMember = "Col001";
this.gltxtCountryOrigin.ValueMember = "Col001";
this.gltxtCountryOrigin.AllowNullInput = DevExpress.Utils.DefaultBoolean.True;
this.gltxtCountryOrigin.View.BestFitColumns();
this.gltxtCountryOrigin.ShowFooter = false;
this.gltxtCountryOrigin.View.OptionsView.ShowAutoFilterRow = true; //显示不显示grid上第一个空行,也是用于检索的应用
//this.cmb_rCountryCode.Properties.AutoComplete = false;
this.gltxtCountryOrigin.ImmediatePopup = true;////在输入框按任一可见字符键时立即弹出下拉窗体
this.gltxtCountryOrigin.PopupFilterMode = DevExpress.XtraEditors.PopupFilterMode.Contains;//
this.gltxtCountryOrigin.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.Standard;
//数量单位
var mienu_QuantityUnits = quantityUnitsBLL.GetQuantityUnitsList().OrderBy(o => o.quCode).ToList();//数量单位
this.gltxtNumberUnits.DataSource = mienu_QuantityUnits;
this.gltxtNumberUnits.NullText = "";
this.gltxtNumberUnits.DisplayMember = "quCode";
this.gltxtNumberUnits.ValueMember = "quCode";
this.gltxtNumberUnits.AllowNullInput = DevExpress.Utils.DefaultBoolean.True;
this.gltxtNumberUnits.View.BestFitColumns();
this.gltxtNumberUnits.ShowFooter = false;
this.gltxtNumberUnits.View.OptionsView.ShowAutoFilterRow = true; //显示不显示grid上第一个空行,也是用于检索的应用
//this.gltxtNumberUnits.Properties.AutoComplete = false;
this.gltxtNumberUnits.ImmediatePopup = true;////在输入框按任一可见字符键时立即弹出下拉窗体
this.gltxtNumberUnits.PopupFilterMode = DevExpress.XtraEditors.PopupFilterMode.Contains;//
this.gltxtNumberUnits.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.Standard;
#endregion
单元格属性设置
gridview单元格编辑添加数据的更多相关文章
- MFC List Control 控件添加单元格编辑,实现可编辑重写
在实现随机生成四则运算的个人项目中,目前已经完成基本功能,想要把程序变成一个Windows界面的程序.原本以为学习过MFC,应该很快就能完成.但是由于以前用的都是VC6.0,这次用了VS2010,稍微 ...
- Bootstrap:Bootstrap_table第一篇:快速用bootstrap_table(支持参数)筛选并展示数据,固定表格前几列,实现表格单元格编辑
1.准备好css和js文件 <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstr ...
- jqGrid单元格编辑配置,事件及方法
转自 http://blog.csdn.net/xueshijun666/article/details/18151055 // var ret = $("#in_store_list_de ...
- GridControl单元格编辑验证的方法
本文实例演示了DevExpress实现GridControl单元格编辑验证的方法,比较实用的功能,具体方法如下: 主要功能代码如下: /// <summary> /// 自定义单元格验证 ...
- JQgrid实现全表单元格编辑
1 jQuery("#baseWageDataValueGrid").jqGrid('setGridParam',{'cellEdit':true}); 2 3 //修改所有td ...
- Dev控件GridView单元格绑定控件
Dev控件GridView单元格绑定控件 //文本按钮 RepositoryItemButtonEdit btnFields = new RepositoryItemButtonEdit();//创建 ...
- sencha gridpanel 单元格编辑
{ xtype: 'gridpanel', region: 'north', height: 150, title: 'My Grid Panel', store: 'A_Test_Store', c ...
- Datagrid扩展方法InitEditGrid{支持单元格编辑}
//-----------------------------------------------------------------/******************************** ...
- Datagrid扩展方法onClickCell{easyui-datagrid-扩充-支持单元格编辑}
//-----------------------------------------------------------------/******************************** ...
随机推荐
- [BTS] BizTalk WCF-SQL Adapter 高级应用
9102年岁尾,41岁的我居然还在搞 BizTalk,感觉就是一种悲伤. 国内用户少之又少,能坚持一直在使用的“忠实”用户那就更少了. 不是它不好用,而是微软全线转向云服务,这个产品也已经快10年没有 ...
- mybatis 批量将list数据插入到数据库
随着业务需要,有时我们需要将数据批量添加到数据库,mybatis提供了将list集合循环添加到数据库的方法.具体实现代码如下: 1.mapper层中创建 insertForeach(List < ...
- PHP ajax 实现三级联动
在一个单独JS页面中,利用ajax实现三级联动,做成一个三级联动形式,以便于以后随时调用 JS代码: $(document).ready(function(e) { $("#sanji&qu ...
- 1.4 Go语言基础之流程控制
流程控制是每种编程语言控制逻辑走向和执行次序的重要部分,流程控制可以说是一门语言的"经脉". Go语言中最常用的流程控制有if和for,而switch和goto主要是为了简化代码. ...
- Message NNNN not found; No message file for product=network, facility=TNS
Message NNNN not found; No message file for product=network, facility=TNS Table of Contents 1. 错误信息 ...
- 魔法方法 __slots__ 方法
场景解析 网游的用户, 大量的用户本质都是类的实例化对象, 在线人数百万级时对内存是很大的挑战, 如何减少这部分的内存 方法解析 __slots__ 方法 取消默认的类实例中的 __dict__ ...
- 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_5-10.Springboot2.x用户登录拦截器开发实战
笔记 10.Springboot2.x用户登录拦截器开发实战 简介:实战开发用户登录拦截器拦截器 LoginInterceptor 1.实现接口 LoginI ...
- jmeter之吞吐量控制器
比如说有一种场景是,10个并发里,有2个事操作业务A,有8个是操作业务B,要模拟这种业务场景,则可以通过吞吐量控制器来模拟 目录 1.用法 2.举例 1.用法 第一种:设置比例控制 选择percent ...
- 一些常用的java书籍的适看范围
一些常用的java书籍的适看范围 Java三本经典的书: 1.Java核心技术书籍:适合查阅,遇到某个问题不清楚了,可以来此求证. 2.Effective Java:对java底层的一些涉及内容,书 ...
- CentOS7.5下,MySQL安装配置指南
[root@host---- home]# grep 'temporary password' /var/log/mysqld.log --20T02::.457613Z [Note] A tempo ...