我正在编写一个wpf destop应用程序,并希望使用SQL Server CE作为后端.我正在努力想出一个有效的数据分页方法.在SQL Server Express中,我可以这样做:
Select ID, FirstName, LastName
From (SELECT ROW_NUMBER() OVER (ORDER BY ID)
AS Row, ID, FirstName, LastName
From TestTable
)
WHERE Row > 1 AND Row <= 10
Run Code Online (Sandbox Code Playgroud)
在SQL Server CE中有什么可比性的吗?我不完全确定什么是和不支持.我想一次只从数据库中返回10行,而不必撤回所有数据,然后将其过滤掉以显示给用户,因为这样会慢得多.谢谢.
我有一个用户控件,带有链接按钮(用于分页)和更新面板内的转发器.分页工作正常,但每次点击进入下一页时都会导致整页回发.
更新面板如下所示:
<asp:UpdatePanel ID="up1" runat="server" UpdateMode="Always">
<ContentTemplate>
<asp:Repeater ID="rptOrganizations" runat="server">
<HeaderTemplate>
<table>
<thead>
<tr>
<th>Organization</th>
<th>State</th>
<th>Accredited Since</th>
</tr>
</thead>
</table>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td>
<asp:Literal ID="ltlInstitution" runat="server" />
</td>
<td>
<asp:Literal ID="ltlState" runat="server" />
</td>
<td>
<asp:Literal ID="ltlAccreditedDate" runat="server" />
</td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
<uc2:RepeaterPaging ID="rpPager" runat="server" PageSize="10" OnNextButtonClickEvent="btnNext_Click" OnPreviousButtonClickEvent="btnPrev_Click" />
</ContentTemplate>
</asp:UpdatePanel>
Run Code Online (Sandbox Code Playgroud)
并且用户控件的内容如下所示:
<asp:LinkButton ID="btnPrev" runat="server" OnClick="btnPrev_Click">Previous</asp:LinkButton> |
<asp:LinkButton ID="btnNext" runat="server" OnClick="btnNext_Click">Next</asp:LinkButton>
<asp:Literal ID="ltlNumResults" runat="server" /> results returned.
Run Code Online (Sandbox Code Playgroud)
到目前为止,我已经尝试为用户控件添加异步回发触发器,这会导致异步回发,但不会更新更新面板中的其余文本.换句话说,发生异步回发并显示下一页,但转发器中的原始文本也位于其下方.
我还确认我的链接按钮上设置了IDS,因为这可以在更新面板中触发完整的回发.
我尝试更改更新面板模式(Always,Conditional,ChildrenAsTriggers等).
这些都没有区别 - 实际上导致异步回发的唯一方法是使用触发器,但更新面板中的其余内容不会更新,因此我得到重复的内容.有任何想法吗?