feat: fmBPSN GridView 改用 ObjectDataSource 並採 KEYSET 分頁

- BpsnDAC 新增 SelectPage/SelectCount/SelectBPENOIndex

- SelectPage 採 KEYSET:先在窄集合 BPSNView 算 ROWID,再 join 該頁明細

- SelectCount/SelectBPENOIndex 改用窄集合(免 join)

- fmBpsn.ascx dsBPSNGrid 改 ObjectDataSource(EnablePaging)

- fmBpsn.ascx.cs 調整 Search/Selected/OnInit

- 修復 BpsnDAC.cs 亂碼註解並改存 UTF-8 BOM

- 新增 Doc/GridView改用ObjectDataSource計畫.md(盤點、計畫、效能比較)
This commit is contained in:
2026-09-10 10:29:18 +08:00
parent 577060bc78
commit 9adbcfe0a4
4 changed files with 422 additions and 99 deletions
+19 -6
View File
@@ -215,12 +215,25 @@
TextMessageId="" Visible="False"></cc1:WLabel>
</asp:View>
<asp:View ID="EditView" runat="server">
<asp:SqlDataSource ID="dsBPSNGrid"
runat="server" ConflictDetection="CompareAllValues"
SelectCommand="SELECT * FROM BPSNView WHERE 1=0"
ConnectionString="Data Source=(local);Initial Catalog=THINKYU_WEB;Persist Security Info=True;User ID=sa"
ProviderName="System.Data.SqlClient"
OnSelected="dsBPSNGrid_Selected"></asp:SqlDataSource>
<asp:ObjectDataSource ID="dsBPSNGrid"
runat="server" TypeName="BpsnDAC"
SelectMethod="SelectPage" SelectCountMethod="SelectCount"
EnablePaging="true" OnSelected="dsBPSNGrid_Selected">
<SelectParameters>
<asp:Parameter Name="BPENO" Type="String" />
<asp:Parameter Name="BPNME" Type="String" />
<asp:Parameter Name="BPENM" Type="String" />
<asp:Parameter Name="BPIDN" Type="String" />
<asp:Parameter Name="BPEDY_TYPE" Type="String" />
<asp:Parameter Name="BPDPT_TYPE" Type="String" />
<asp:Parameter Name="BPSDY1" Type="String" />
<asp:Parameter Name="BPSDY2" Type="String" />
<asp:Parameter Name="BPEDY1" Type="String" />
<asp:Parameter Name="BPEDY2" Type="String" />
<asp:Parameter Name="canSearch" Type="Boolean" />
<asp:Parameter Name="userId" Type="String" />
</SelectParameters>
</asp:ObjectDataSource>
<asp:SqlDataSource ID="dsBPSNForm"
runat="server"
ConflictDetection="CompareAllValues"