1

我正在尝试过滤已绑定到模板的Obout 网格中的列。

背景

DataField列只是一个表的外键 ID,该History表包含某个对象的基本状态(例如名称、资产标签、序列号、附加信息等)如果用户要更改某个状态对象(例如附加信息)的新记录将被添加到History表中,并且该新记录是上述外键引用的内容。

在对列进行数据绑定期间,我将最近的历史状态与之前的状态进行比较,并返回对已更改内容的英文描述(例如“此设备的附加信息字段已被修改”),以便可以显示作为每一行中的文本。

问题

网格本身似乎只过滤作为原始数据绑定一部分的客户端上的数据(在这种情况下,只是历史记录的外键 ID)。我可以按这个数字进行过滤,尽管它实际上并没有显示在列视图中,因为它已被英文描述取代。

网格标记

<cc1:Grid ID="grdHistory" runat="server" AutoGenerateColumns="False" DataSourceID="dsHistory" AllowFiltering="true">
    <Columns>
        <!-- other columns snipped -->
        <cc1:Column DataField="DeviceHistoryID" HeaderText="Event description"  Width="450" Wrap="true"
            Index="3">
            <TemplateSettings  TemplateId="tplEventDescription" />
        </cc1:Column>
    </Columns>
    <Templates>
        <cc1:GridTemplate ID="tplEventDescription" runat="server">
            <Template>
                 <%# FormatEventDescription(Container.DataItem) %>
            </Template>
        </cc1:GridTemplate>
    </Templates>
</cc1:Grid>

FormatEventDescription(Hashtable Records)是返回我希望过滤的对象状态更改的英文版本的函数。

问题

有没有办法按栏目中的英文描述过滤?在这一点上,任何见解(设计缺陷等)都是受欢迎的。我已经尝试过筛选他们的所有文档,甚至尝试就这个问题联系他们的支持,但尚未收到回复。

4

1 回答 1

0

我对 Obout 的 3rd Party 控件了解不多,但似乎是 .net GridView 控件的子类。所以你可能会再次问这个问题,而是在 Obout 所在的地方使用 gridview,因为显然没有多少人使用那个特定的控件。

在简要扫描网格的事件之后,我认为您可以尝试使用该RowDataBound事件进行必要的转换。

您也可以使用 的Selected事件datasource来转换数据。

If you are able to transform the data to it's final readable state earlier, you may be able to filter it earlier in the chain of events that occur.

于 2009-03-09T20:39:17.487 回答