【发布时间】:2019-08-07 12:44:38
【问题描述】:
我有一个页面,用户从下拉列表中选择一个中心,然后在更新面板中显示中心详细信息。每个中心都可以定义一个或多个时间表,所以现在我想添加一个带有分页的 Formview 控件,允许用户翻阅时间表。计划将呈现在自定义表格中,因此无法选择 gridview、repeater 等控件。我在下面显示的 Formview 代码基于我找到的一个示例,只是为了使基础工作正常(这不是所需的最终结果)。
在选择中心时一切都很好;显示了中心详细信息,以及时间表 Formview 和页面选择器。问题是当我单击分页选择器以移动到另一个计划时,计划 Formview 消失了。如果我从下拉列表中选择另一个中心,新的中心详细信息将与时间表 Formview 一起显示,它现在显示我在消失之前选择的记录(我应该注意,现在我只是使用一些虚拟数据所有中心的时间表都相同;最终时间表数据将特定于所选中心)。
<div class="form-group row">
<label for="drpCenters" class="col-sm-2 col-form-label font-weight-bold">Select Center:</label>
<div class="col-sm-10">
<asp:DropDownList ID="drpCenters" CssClass="form-control input-sm" runat="server" AutoPostBack="true" OnSelectedIndexChanged="drpCenters_SelectedIndexChanged"></asp:DropDownList>
</div>
</div>
<asp:UpdatePanel ID="pnlCenter" runat="server" updatemode="Conditional">
<ContentTemplate>
<div id="divCenter" style="display:none;">
<table class="table table-bordered table-sm" style="width:auto;">
<tr>
<th style="text-align:right;">Center Name: </th>
<td><asp:Label ID="lblCtrName" runat="server" Text=""></asp:Label></td>
</tr>
<tr>
<th style="text-align:right;">Center Phone: </th>
<td><asp:Label ID="lblCtrPhone" runat="server" Text=""></asp:Label></td>
</tr>
<tr>
<th style="text-align:right;">Center Email: </th>
<td><asp:Label ID="lblCtrEmail" runat="server" Text=""></asp:Label></td>
</tr>
<tr>
<th style="text-align:right;">Center Director: </th>
<td><asp:Label ID="lblDirector" runat="server" Text=""></asp:Label></td>
</tr>
</table>
</div>
<asp:UpdatePanel ID="pnlSchedules" runat="server" updatemode="Conditional">
<ContentTemplate>
*** this disappears when a record is selected from the paging selector
<asp:FormView ID="fvSchedules" runat="server" AllowPaging="true" datakeynames="ctrID" OnPageIndexChanging="fvSchedules_PageIndexChanging">
<HeaderTemplate>
Schedule
</HeaderTemplate>
<HeaderStyle
BackColor="DarkBlue"
ForeColor="AliceBlue"
BorderColor="DarkOrange"
BorderStyle="None"
BorderWidth="2"
Font-Size="Medium"
Font-Italic="false"
Font-Bold="true"
Height="35"
HorizontalAlign="Center"
/>
<ItemTemplate>
<b>ID:</b> <i><%# Eval("ctrID") %></i>
<br />
<b>Center:</b> <i><%# Eval("ctrName") %></i>
</ItemTemplate>
<RowStyle
BackColor="DodgerBlue"
ForeColor="AliceBlue"
/>
<PagerSettings Mode="NumericFirstLast" FirstPageText="First" LastPageText="Last" />
<PagerStyle BackColor="DarkBlue" ForeColor="AliceBlue" />
</asp:FormView>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="fvSchedules" EventName="PageIndexChanged" />
</Triggers>
</asp:UpdatePanel>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="drpCenters" EventName="SelectedIndexChanged" />
</Triggers>
</asp:UpdatePanel>
Formview 分页代码:
protected void fvSchedules_PageIndexChanging(object sender, FormViewPageEventArgs e)
{
fvSchedules.PageIndex = e.NewPageIndex;
fvSchedules.DataBind();
}
关于如何解决这个问题的任何想法?
【问题讨论】: