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-扩充-支持单元格编辑}
//-----------------------------------------------------------------/******************************** ...
随机推荐
- Final阶段贡献分配规则
此次作业要求参见:https://edu.cnblogs.com/campus/nenu/2019fall/homework/10063 贡献分分配规则: 组内一共五名同学,贡献分共计50分. 1.每 ...
- PHP json_encode函数的参数说明
PHP json_encode函数的参数说明 一.总结 一句话总结: · json_encode常常被用于将数组转换成json格式的字符串来表示,但是json_encode的第一个参数却并不一定是数组 ...
- legend3---9、项目的日志以及调试信息数据量非常大
legend3---9.项目的日志以及调试信息数据量非常大 一.总结 一句话总结: legend2我开发调试,最近竟然发现日志等的信息有1.5G,数据量实在太大 1.juqery如何找后代? chil ...
- 以下示例使用一个 x,y 坐标列表创建了一个多边形几何对象。然后使用裁剪工具来裁剪具有多边形几何对象的要素类。
import arcpy # Create an Array object. # array = arcpy.Array() # List of coordinates. # coordList = ...
- CentOS 上 Jenkins 的安装
Jenkins 的前身是 Hudson. Jenkins 是一款开源 CI&CD 软件,用于自动化各种任务,包括构建.测试和部署软件. Jenkins 支持各种运行方式,可通过系统包.Dock ...
- LC 900. RLE Iterator
Write an iterator that iterates through a run-length encoded sequence. The iterator is initialized b ...
- Hibernate3核心API-SessionFactory接口
Configuration对象根据当前的配置信息生成 SessionFactory 对象.SessionFactory 对象一旦构造完毕,即被赋予特定的配置信息(SessionFactory 对象中保 ...
- mock的使用
mock的重要性 mock就是对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建的方法.项目开发和测试过程中,遇到以下的情况时,就需要模拟结果返回. 1.当另一方接口或服务还未完成,阻碍项 ...
- 最近忙科研立项 & 对博客的优化
最近一直在忙科研立项.... 立项书 & 答辩 ... 接下来,将对博客进行优化... (1) 依据书来学习的[需要大量截图],将用微软的 OneNote 写笔记,然后打包成pdf,上传到我的 ...
- Unreal Engine* 4/英特尔® VTune™ Amplifier 使用指南
借助英特尔 VTune Amplifier,可以通过单一易用的分析界面获得先进的分析功能.UE4 和英特尔 VTune Amplifier 相互配合,支持调查代码并进行分析,从而在多个内核上顺畅运行. ...