我正在尝试过滤已绑定到模板的Obout Grid中的列。
背景
列的DataField
只是History
表的外键ID,其中包含某些对象的基本状态(如名称,资产标签,序列号,附加信息)。等等)如果用户要更改对象的某个状态(例如附加信息),则会将新记录添加到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)
是一个函数,它将对我希望过滤的对象状态的更改的英文版本返回。
问题
有没有办法根据列中的英文说明进行过滤?在这一点上,任何见解(设计缺陷等)都是受欢迎的。我已经尝试过对所有文档进行筛选,甚至尝试联系他们对此问题的支持,但尚未收到回复。
答案 0 :(得分:0)
我对Obout的第三方控件知之甚少,但似乎是.net GridView控件的子类。所以你可能会再次提出这个问题,而是使用网格视图中的Obout这个词,因为显然没有多少人使用那个特定的控件。
在简要扫描网格事件后,我想您可能会尝试使用RowDataBound
事件进行必要的转换。
您也可以使用Selected
的{{1}}事件来转换数据。
如果您之前能够将数据转换为最终可读状态,则可以在发生的事件链中尽早过滤它。