zl程序教程

您现在的位置是:首页 >  后端

当前栏目

DevExpress实现自定义GridControl中按钮文字内容的方法

方法 实现 自定义 内容 文字 按钮 devexpress GridControl
2023-06-13 09:15:41 时间

在一些C#项目的开发中,有时候会使用到GridControl的FindPanel,这样可以很好的对数据进行筛选,可是所展现的按钮文字是英文,如下图所示:

那怎么定义两个按钮问题,以符合项目需求了?本文讲述利用GridLocalizer来实现这一要求的方法。具体步骤如下:

主要功能代码如下:

publicclassBuilderGridLocalizer:GridLocalizer
{
Dictionary<GridStringId,string>CusLocalizedKeyValue=null;
///<summary>
///带参数的构造函数
///</summary>
///<paramname="cusLocalizedKeyValue">需要转移的GridStringId,其对应的文字描述</param>
publicBuilderGridLocalizer(Dictionary<GridStringId,string>cusLocalizedKeyValue)
{
CusLocalizedKeyValue=cusLocalizedKeyValue;
}
///<summary>
///重载
///</summary>
///<paramname="id">GridStringId</param>
///<returns>string</returns>
publicoverridestringGetLocalizedString(GridStringIdid)
{
if(CusLocalizedKeyValue!=null)
{
string_gridStringDisplay=string.Empty;
foreach(KeyValuePair<GridStringId,string>gridLocalizerinCusLocalizedKeyValue)
{
if(gridLocalizer.Key.Equals(id))
{
_gridStringDisplay=gridLocalizer.Value;
break;
}
}
return_gridStringDisplay;
}
returnbase.GetLocalizedString(id);
}

}

定义一个类继承GridLocalizer,重写GetLocalizedString方法,逻辑很简单;为了以后能更简单重复利用代码,减少重复编码,所以在另外一个类中添加一个方法,如下:

///<summary>
///自定义GridControl按钮文字
///</summary>
///<paramname="girdview">GridView</param>
///<paramname="cusLocalizedKeyValue">需要转移的GridStringId,其对应的文字描述</param>
publicstaticvoidCustomButtonText(thisGridViewgirdview,Dictionary<GridStringId,string>cusLocalizedKeyValue)
{
BuilderGridLocalizer_bGridLocalizer=newBuilderGridLocalizer(cusLocalizedKeyValue);
GridLocalizer.Active=_bGridLocalizer;
}
这样子我们可以很简单使用,代码如下:

privateDictionary<GridStringId,string>SetGridLocalizer()
{
Dictionary<GridStringId,string>_gridLocalizer=newDictionary<GridStringId,string>();
_gridLocalizer.Add(GridStringId.FindControlFindButton,"查找");
_gridLocalizer.Add(GridStringId.FindControlClearButton,"清空");
return_gridLocalizer;
}
privatevoidForm1_Load(objectsender,EventArgse)
{
Dictionary<GridStringId,string>_gridLocalizer=SetGridLocalizer();
gridView1.CustomButtonText(_gridLocalizer);
gridControl1.DataSource=CreateTable(20);
gridView1.ShowFindPanel();
}

代码运行效果如下图所示: