2009-02-26 46 views
1

我正在尝试过滤已绑定到模板的Obout Grid中的列。Obout Grid过滤带有由模板填充的文本的列

背景

列的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)是返回的,我希望筛选的更改对象的状态英文版本的功能。

问题

有没有办法通过在列的英文说明进行过滤?在这一点上,任何见解(设计缺陷等)都是受欢迎的。我已经试过筛选他们所有的文件,甚至试图联系他们对这个问题的支持,但还没有收到回复。

回答

0

我不太了解Obout的第三方控件,但似乎是从.net GridView控件分类的。所以你可能会再次提出这个问题,但是使用gridview来代替Obout这个词,因为显然没有多少人使用这个特定的控制。

在简要扫描网格事件后,我想你可能会尝试使用RowDataBound事件来完成必要的转换。

另外,您也许可以使用datasourceSelected事件来转换数据。

如果您能够将数据更早地转换为最终可读状态,则可以在发生的事件链中更早地对其进行过滤。

+0

这个问题不再相关,因为我redid整个页面,但我会给你的赏金,因为没有人甚至尝试过。 – 2009-03-12 21:09:48