问题描述
请帮助我解决 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"]; }