Я пытаюсь отфильтровать столбец в Obout Grid , который был привязан к шаблону.
Фон
Столбец DataField
- это просто идентификатор внешнего ключа для таблицы History
, которая содержит, по сути, состояния определенного объекта (например, имя, тег актива, серийный номер, дополнительная информация и т. Д.). Если бы пользователь изменил определенное состояние объекта (например, «Дополнительная информация»), новая таблица будет добавлена в таблицу History
, и эта новая запись является той, на которую ссылается вышеупомянутый внешний ключ.
Во время привязки данных к столбцу я сравниваю самое последнее состояние истории с тем, которое было непосредственно перед ним, и возвращаю английское описание того, что изменилось (например, «Дополнительное информационное поле этого устройства было изменено»), чтобы оно может отображаться в виде текста в каждой строке.
Проблема
Кажется, что сама сетка фильтрует только те данные на стороне клиента, которые были частью первоначальной привязки данных (в данном случае просто идентификатор внешнего ключа для записи истории). Я могу фильтровать по этому номеру, хотя он фактически не отображается в столбце, потому что он был заменен английским описанием.
Сетка Разметка
<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)
- это функция, которая возвращает английскую версию изменений состояния объекта, по которым я хочу отфильтровать.
Вопрос
Есть ли способ фильтрации по английскому описанию в столбце? На этом этапе любые идеи (недостатки дизайна и т. Д.) Приветствуются. Я пытался проанализировать всю их документацию и даже попытался связаться с их поддержкой по этому вопросу, но пока не получил ответа.