如何通过不同于数据源的文本过滤ASPxGridView

时间:2018-09-24 18:00:17

标签: c# asp.net devexpress

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

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

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

1 个答案:

答案 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())];
    }
}