Obout Grid фильтрует столбец с текстом, заполненным шаблоном - PullRequest
1 голос
/ 27 февраля 2009

Я пытаюсь отфильтровать столбец в 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) - это функция, которая возвращает английскую версию изменений состояния объекта, по которым я хочу отфильтровать.

Вопрос

Есть ли способ фильтрации по английскому описанию в столбце? На этом этапе любые идеи (недостатки дизайна и т. Д.) Приветствуются. Я пытался проанализировать всю их документацию и даже попытался связаться с их поддержкой по этому вопросу, но пока не получил ответа.

1 Ответ

0 голосов
/ 09 марта 2009

Я мало что знаю о стороннем контроле Obout, но, похоже, он подкласс из элемента управления .net GridView. Таким образом, вы можете задать вопрос еще раз, но вместо этого используйте gridview, где слово Obout, потому что, очевидно, не так много людей используют этот конкретный элемент управления.

После краткого сканирования событий сетки, я думаю, вы можете попробовать использовать событие RowDataBound для выполнения необходимых преобразований.

Также вы можете использовать событие Selected datasource для преобразования данных.

Если вы можете раньше преобразовать данные в их окончательное состояние для чтения, возможно, вы сможете отфильтровать их раньше в цепочке происходящих событий.

...