• 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 >= 0)
                    {
                        e.Info.DisplayText = (e.RowHandle + 1).ToString();
                    }
                    else if (e.RowHandle < 0 && e.RowHandle > -1000)
                    {
                        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 = 0;
                invoiceData.Amount = 0;
                invoiceData.Currency = cbDeclaredCurrency.Text;
                invoiceData.Quantity = 1;
                invoiceData.QuantityUnit = "PCS";
                invoiceData.OriginCountryCode = "CN";
            }

    单元格值,验证,离开事件

     private void gridView1_CellValueChanged(object sender, DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs e)
            {
                if (gridView1.FocusedRowHandle >= 0 || gridView1.IsNewItemRow(gridView1.FocusedRowHandle))
                {
                    if (e.Column.FieldName.Equals("Quantity") || e.Column.FieldName.Equals("Price"))
                    {
                        int i = 0;
                        if (gridView1.GetFocusedRowCellValue("Quantity") != null)
                        {
                            i = (int)gridView1.GetFocusedRowCellValue("Quantity");
                        }
                        decimal d = 0;
                        if (gridView1.GetFocusedRowCellValue("Price") != null)
                        {
                            d = Common.Utils.ObjToDecimal(gridView1.GetFocusedRowCellValue("Price"), 0);
                        }
                        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

     单元格属性设置

  • 相关阅读:
    OnboardSDK分析
    Ubuntu14.04安装pycharm用于Python开发环境部署,并且支持pycharm使用中文输入
    TCP/IP四层模型和OSI七层模型的概念
    二分查找
    Combination Sum
    全面解析回溯法:算法框架与问题求解
    Search Insert Position
    过滤器
    Java中Web页面信息获取
    jQuery和Ajax联动
  • 原文地址:https://www.cnblogs.com/shuaimeng/p/9927399.html
Copyright © 2020-2023  润新知