如何按不同于数据源的文本筛选 ASPxGridView



我的网页上有一个DevExpress AspGridView,我正在使用包含的筛选器行。我遇到的问题是我正在将显示文本的值从整数更改为数组中的某个相应字符串(整数成为数组索引(,但是过滤器行不会按新的显示文本值排序。在筛选器行中键入内容时,它会尝试搜索整数而不是字符串。

这是用于更改单元格中的文本的代码

gv.HtmlDataCellPrepared += (sender, e) =>
{
if (e.DataColumn.FieldName == "FOO_STATUS")
{
e.Cell.Text = STATUS[int.Parse(e.GetValue("FOO_STATUS").ToString())];
}
};

通过ASPxGridView.CustomColumnDisplayText事件(而不是ASPxGridView.HtmlDataCellPrepare事件(指定自定义网格单元格的文本,并将相应列的 Settings.FilterMode 属性设置为 DisplayText:

<dx:ASPxGridView ... OnCustomColumnDisplayText="OnCustomColumnDisplayText">
<Columns>
...
<dx:GridViewDataSpinEditColumn FieldName="FOO_STATUS">
<Settings FilterMode="DisplayText" />
</dx:GridViewDataSpinEditColumn>
</Columns>
</dx:ASPxGridView>
//CS    
protected void OnCustomColumnDisplayText(object sender, ASPxGridViewColumnDisplayTextEventArgs e) {
if (e.Column.FieldName == "FOO_STATUS") {
e.DisplayText = STATUS[int.Parse(e.GetFieldValue("FOO_STATUS").ToString())];
}
}
'VB
Protected Sub OnCustomColumnDisplayText(ByVal sender As Object, ByVal e As ASPxGridViewColumnDisplayTextEventArgs)
If e.Column.FieldName Is "FOO_STATUS" Then
e.DisplayText = STATUS(Integer.Parse(e.GetFieldValue("FOO_STATUS").ToString()))
End If
End Sub

最新更新