Фильтр Obout Grid разрывается после обратной передачи
У меня есть Obout Grid с пользовательскими фильтрами, который используется для отображения информации о двух разных предметах с похожими, но немного отличающимися полями. Они разделяют два столбца, а два других переключают видимость в зависимости от того, какой элемент отображается в сетке. Пользовательские фильтры используются для сортировки пары столбцов с датами начала и окончания, а другой сортируется с раскрывающимся списком. При первой загрузке страницы все фильтры работают правильно, но когда я щелкаю ссылку, которая заставляет постбэк переключать элементы в сетке, фильтры перестают работать совершенно корректно. Текстовые фильтры по-прежнему работают, но в раскрывающемся списке больше нет параметров, а средства выбора даты Obout больше не заполняют текстовые поля рядом с ними, которые показывают выбранную дату. Однако, если вы вводите дату, она все равно сортируется правильно, поэтому сам фильтр не нарушается.
Я пробовал сетку как с UpdatePanel, так и без него и вызывал обновления, когда контекст переключался, но поведение не менялось.
Есть ли какая-либо причина, по которой раскрывающийся список теряет свои параметры или средство выбора даты теряет свою связь с текстовыми полями?
Пользовательский фильтр даты:
<obout:GridTemplate ID="templateDateIssuedFilter" runat="server">
<Template>
<table>
<tr>
<td>
<asp:Literal ID="litDateIssuedFrom" runat="server" Text="From" />
</td>
<td>
<obout:OboutTextBox ID="txtDateIssuedFrom" runat="server" Width="180px">
<ClientSideEvents OnKeyUp="applyFilter" />
</obout:OboutTextBox>
<obout:Calendar runat="server" DatePickerMode="true" TextBoxId="txtDateIssuedFrom" OnClientDateChanged="applyFilter" DatePickerImagePath="OboutControls/Calendar/styles/date_picker1.gif" />
</td>
</tr>
<tr>
<td>
<asp:Literal ID="litDateIssuedTo" runat="server" Text="To" />
</td>
<td>
<obout:OboutTextBox ID="txtDateIssuedTo" runat="server" Width="180px">
<ClientSideEvents OnKeyUp="applyFilter" />
</obout:OboutTextBox>
<obout:Calendar runat="server" DatePickerMode="true" TextBoxId="txtDateIssuedTo" OnClientDateChanged="applyFilter" DatePickerImagePath="OboutControls/Calendar/styles/date_picker1.gif" />
</td>
</tr>
</table>
</Template>
</obout:GridTemplate>
1 ответ
Немного поиграв, я обнаружил, что сборщики даты, похоже, просто потеряли связь со своим текстовым полем, и им просто нужно напомнить. Я не мог найти причину, почему это произошло, но это происходило с каждым постбэком на странице. Я добавил код, чтобы найти средства выбора даты и переназначить атрибут TextBoxId для всех из них после каждой обратной передачи.
Для выпадающего списка мне пришлось заново добавлять все параметры при каждой обратной передаче.