DevExpress - 如何在数据网格视图中动态修改按钮标题

问题描述

请帮助我解决 Devexpress 的问题。

How do I dynamically modify button caption within a datagridview

例如:在“Total Sale”列中,如果值低于 100,则按钮必须具有标题“Low Value”,现在如果值高于 101,则按钮必须显示“Above Value”

说到这里,请帮帮我,谢谢

        private void bandedGridView1_CustomrowCellEdit(object sender,DevExpress.XtraGrid.Views.Grid.CustomrowCellEditEventArgs e)
    {
        if (e.Column.Caption == "bandedGridColumn1")
        {
            int val = Convert.ToInt32(bandedGridView1.GetRowCellValue(e.RowHandle,"VAGAS"));
            RepositoryItemButtonEdit ritem = new RepositoryItemButtonEdit();
            if (val == 20)
            {
                ritem.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.HideTextEditor;
                ritem.Buttons[0].Caption = "Gerar Sorteio";
                ritem.Buttons[0].Visible = false;
                e.RepositoryItem = ritem;
            }

        }
    }

解决方法

要使标题可见,您需要将 RepositoryItemButtonEdit 的 Kind 属性设置为 Glyph。

,

回答我的问题

  • 我创建了一个名为 ApresentaBotoesNoDataGrid() 的方法

private void ApresentaBotoesNoDataGrid() {

        RepositoryItemButtonEdit riBtnEditMatricular = new RepositoryItemButtonEdit();
        riBtnEditMatricular.Name = "riBtnEditMatricular";
        riBtnEditMatricular.Buttons[0].Kind = DevExpress.XtraEditors.Controls.ButtonPredefines.Glyph;
        riBtnEditMatricular.Buttons[0].Caption = "Matricular";
        riBtnEditMatricular.ButtonsStyle = DevExpress.XtraEditors.Controls.BorderStyles.Office2003;
        riBtnEditMatricular.Buttons[0].Appearance.BackColor = Color.LimeGreen;
        riBtnEditMatricular.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.HideTextEditor;
        riBtnEditMatricular.ButtonClick += AcaoBotaoDataGrid_ButtonClick;

        RepositoryItemButtonEdit riBtnEditSortear = new RepositoryItemButtonEdit();
        riBtnEditSortear.Name = "riBtnEditSortear";
        riBtnEditSortear.Buttons[0].Kind = DevExpress.XtraEditors.Controls.ButtonPredefines.Glyph;
        riBtnEditSortear.Buttons[0].Caption = "Sortear";
        riBtnEditSortear.ButtonsStyle = DevExpress.XtraEditors.Controls.BorderStyles.Office2003;
        riBtnEditSortear.Buttons[0].Appearance.BackColor = Color.FromArgb(255,240,208);
        riBtnEditSortear.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.HideTextEditor;
        riBtnEditSortear.ButtonClick += AcaoBotaoDataGrid_ButtonClick;
    
        dtgQuadroSorteio.RepositoryItems.Add(riBtnEditMatricular);
        dtgQuadroSorteio.RepositoryItems.Add(riBtnEditSortear);
        bandedGridView1.CustomRowCellEdit += bandedGridView1_CustomRowCellEdit;
        bandedGridView1.RowCellStyle += bandedGridView1_RowCellStyle;

    }
  • 名为 AcaoBotaoDataGrid_ButtonClick 的其他方法

void AcaoBotaoDataGrid_ButtonClick(object sender,ButtonPressedEventArgs e) { var value = bandedGridView1.GetFocusedRowCellValue("CODELETIVA");

        ButtonEdit buttonEdit = (ButtonEdit)sender;
        if (buttonEdit.Properties.Name == "riBtnEditMatricular" && e.Button.Kind == DevExpress.XtraEditors.Controls.ButtonPredefines.Glyph)
        {
            XtraMessageBox.Show("Receive Button Clicked on row handle " + value.ToString());
        }
        else if (buttonEdit.Properties.Name == "riBtnEditSortear" && e.Button.Kind == DevExpress.XtraEditors.Controls.ButtonPredefines.Glyph)
        {
            XtraMessageBox.Show("Pay Now Button Clicked on row handle " + value.ToString());
        }

    }
  • 活动

      private void bandedGridView1_CustomRowCellEdit(object sender,DevExpress.XtraGrid.Views.Grid.CustomRowCellEditEventArgs e)
      {
          if (e.Column.FieldName != "Button") return;
          BandedGridView view = (BandedGridView)sender;
          string type = (string)view.GetRowCellValue(e.RowHandle,"TEMPERATURA");
          if (type == "Grande Procura")
              e.RepositoryItem = dtgQuadroSorteio.RepositoryItems["riBtnEditSortear"]; 
          else
              e.RepositoryItem = dtgQuadroSorteio.RepositoryItems["riBtnEditMatricular"];
      }
    

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...