找回密码
 立即注册

QQ登录

只需一步,快速开始

瑞雪
初级会员   /  发表于:2023-8-8 11:48  /   查看:2734  /  回复:1
5金币
环境:VS2019、VB.NET、Spread for ASP.NET 10.0
现象:数据行20条时,行单选机能正常,
      数据行过大时(500),行单选后,7-8秒才反应
      ★机能不能使用分页
前台页面
TestDemo.aspx

<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="TestDemo.aspx.vb" Inherits="CheckBoxCellDemo.TestDemo" %>

<%@ Register Assembly="FarPoint.Web.Spread" Namespace="FarPoint.Web.Spread" TagPrefix="FarPoint" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
    <script language="javascript" type="text/javascript" src="js/jquery-3.4.1.js"></script>
    <script language="javascript" type="text/javascript">
        window.onload = init;
        var spHeader;
        var spDetail;
        function init() {
            spHeader = document.getElementById("spHeader");
        }

        function spHeader_MoveClick() {
            var row;

            if (document.all) {
                row = spHeader.ActiveRow;
            }
            else {
                row = spHeader.GetActiveRow();
            }

            for (var i = 0; i < spHeader.GetRowCount(); i++) {
                if (i == row) {
                    continue;
                }
                else {
                    spHeader.SetValue(i, 0, false, true);
                }               
            }

            for (var i = 0; i < spDetail.GetRowCount(); i++) {
                spDetail.SetValue(i, 0, false, true);
            }
        }

    </script>
</head>
<body>
    <form id="form1" runat="server">
        <aspanel ID="anel1" runat="server">
            行数:
            <asp:RadioButton ID="rdo50" runat="server" Text="20" GroupName="rowCount"  AutoPostBack="true"/>
            <asp:RadioButton ID="rdo500" runat="server" Text="500"  GroupName="rowCount" AutoPostBack="true"  />
        </aspanel>
         <div>
            <FarPoint:FpSpread ID="spHeader" runat="server" BorderColor="#A0A0A0" BorderStyle="Solid" BorderWidth="1px" Height="300" Width="400">
                <CommandBar BackColor="#F6F6F6" ButtonFaceColor="Control" ButtonHighlightColor="ControlLightLight" ButtonShadowColor="ControlDark" Visible="false"></CommandBar>
                <Sheets>
                    <FarPoint:SheetView SheetName="Sheet1"></FarPoint:SheetView>
                </Sheets>
            </FarPoint:FpSpread>
        </div>
        <br />

    </form>
</body>
</html>

后台代码
TestDemo.aspx.vb

Public Class TestDemo
    Inherits System.Web.UI.Page

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If Not IsPostBack Then
            DataBing(20)
        End If
    End Sub

    Private Sub DataBing(ByRef rowCount As Integer)

        spHeader.ActiveSheetView.RowCount = 0
        'spDetail.ActiveSheetView.RowCount = 0

        Dim ck As New FarPoint.Web.Spread.CheckBoxCellType
        ck.AutoPostBack = False
        ck.OnClientClick = "spHeader_MoveClick();"
        spHeader.ActiveSheetView.AllowPage = False
        spHeader.ActiveSheetView.RowCount = rowCount
        spHeader.ActiveSheetView.ColumnCount = 6
        For row As Integer = 0 To spHeader.ActiveSheetView.RowCount - 1
            spHeader.ActiveSheetView.Cells(row, 0).CellType = ck
        Next

    End Sub

    Protected Sub rdo50_CheckedChanged(sender As Object, e As EventArgs)
        DataBing(20)
    End Sub

    Protected Sub rdo500_CheckedChanged(sender As Object, e As EventArgs)
        DataBing(500)
    End Sub
End Class

画面现象

image.png574609374.png


最佳答案

查看完整内容

spread webform 受限于webforms本身的性能确实没有办法加载大数据量,所以才有分页的功能,如果项目分页的话,没有其他好的办法 如果可以更换纯前端组件,建议使用spreadjs,性能会有数量级的提升。加载10W条数据也没有问题

1 个回复

倒序浏览
最佳答案
最佳答案
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-8-8 11:48:03
来自 2#
spread webform 受限于webforms本身的性能确实没有办法加载大数据量,所以才有分页的功能,如果项目分页的话,没有其他好的办法

如果可以更换纯前端组件,建议使用spreadjs,性能会有数量级的提升。加载10W条数据也没有问题
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部