我的网页上有一个DevExpress AspGridView,并且正在使用包含的过滤器行。我遇到的问题是,我正在将显示文本的值从整数更改为数组中某个对应的字符串(该整数成为数组索引),但是过滤器行未按新的显示文本值进行排序。在过滤器行中键入内容时,它将尝试搜索整数而不是字符串。
这是用于更改单元格中文本的代码
gv.HtmlDataCellPrepared += (sender, e) =>
{
if (e.DataColumn.FieldName == "FOO_STATUS")
{
e.Cell.Text = STATUS[int.Parse(e.GetValue("FOO_STATUS").ToString())];
}
};
答案 0 :(得分:1)
通过 ASPxGridView.CustomColumnDisplayText 事件(而不是 ASPxGridView.HtmlDataCellPrepared 一个)指定自定义网格单元格的文本,并将相应列的Settings.FilterMode属性设置为DisplayText:
<dx:ASPxGridView ... OnCustomColumnDisplayText="OnCustomColumnDisplayText">
<Columns>
...
<dx:GridViewDataSpinEditColumn FieldName="FOO_STATUS">
<Settings FilterMode="DisplayText" />
</dx:GridViewDataSpinEditColumn>
</Columns>
</dx:ASPxGridView>
protected void OnCustomColumnDisplayText(object sender, ASPxGridViewColumnDisplayTextEventArgs e) {
if (e.Column.FieldName == "FOO_STATUS") {
e.DisplayText = STATUS[int.Parse(e.GetFieldValue("FOO_STATUS").ToString())];
}
}