Я оказался в странной ситуации.Я использую панель обновления, которая содержит сетку для отображения результатов базы данных.У меня есть форма с несколькими фильтрами внутри панели обновления.Пользователь должен иметь возможность применять любые фильтры, которые он хочет, а затем обновить результаты с помощью кнопки обновления.
Как я понял, это обновляет всю страницу.Однако, если я установлю AutoPostBack="true"
в раскрывающемся списке, все немного изменится:
- Я выберу значение из раскрывающегося списка
- Подождите секунду, и страница завершит обратную передачу, в котором результаты фактически не обновляются, а выпадающий список сбрасывает себя
- Теперь я могу использовать форму, и она работает правильно
- Если я заполняю текстовое поле или нажимаю кнопку обновить доразрешив автоматическую обратную передачу, форма продолжит обновлять страницу
Меня очень смущает это поведение.Это основы моего шаблона кода
<asp:UpdatePanel id="GridUpdatepanel" runat="server">
<ContentTemplate>
<form>
<div class="row">
<div class="col-md-8">
<h5 class="align-middle" >Filters</h5>
</div>
<div class="col-md-4">
<div class="pull-right">
<asp:button Text="Update" id="UpdateButton" OnClick="UpdateButton_Click" runat="server" CssClass="btn btn-primary btn-sm"/>
<asp:button Text="Reset" id="resetButton" OnClick="ResetButton_Click" runat="server" CssClass="btn btn-danger btn-sm"/>
</div>
</div>
</div>
<div class="row">
<div class="input-group input-group-sm col-md-4">
<asp:DropDownList runat="server" id="activeFilter" CssClass="form-control" AutoPostBack="false" >
<asp:ListItem selected="True" value="">-- Filter By Active/Inactive --</asp:ListItem>
<asp:ListItem value="NULL">Active</asp:ListItem>
<asp:ListItem value="NOT NULL">Inactive</asp:ListItem>
</asp:DropDownList>
</div>
<div class="input-group input-group-sm col-md-4">
<asp:TextBox id="jobIdFilter" CssClass="form-control" runat="server" placeholder="-- Filter By Job ID --" />
</div>
</div>
</form>
<asp:GridView>
<!-- display data in table etc -->
</asp:Gridview>
</ContentTemplate>
</asp:UpdatePanel>
public void UpdateButton_Click(Object sender, EventArgs e)
{
LoadGridView();
//LoadGridView() then takes the values from the form fields, modifies
//the SQL string and updates the table with the results
}
Последнее, что следует отметить, - этот код дублирован на трех разных страницах, помещенных в контейнер и перемещаемых с помощью навигационных вкладок.Я не уверен, что, может быть, они мешают друг другу, но первая вкладка работает нормально, а две другие - нет.
Спасибо за любую помощь, которую вы можете оказать.