datagrid 速度太慢啊???

lxtf214 2006-04-26 10:23:53
我在datagrid中要用到三个模板列,且位置在0,4,9 三个位置。为了便于控制。因此,我在datagrid的属性生成器中清除了 在“在运行时自动创建单选框”。然后我添加了模板列。
可问题出现了,不知道是不是我的数据量有点大的原因,还是别的。我的 datagrid 和该页面连移动都延时。我不知道是什么原因?可能是病毒吗?当我选中“在运行时自动创建单选框”时,就好 了
可这样我又不能设置模板列的位置,怎么办呢?
...全文
456 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
xxqq0824 2006-04-27
  • 打赏
  • 举报
回复
haotie,hai shi mark
liujiayu10 2006-04-27
  • 打赏
  • 举报
回复
速度慢和Datagrid没有太大关系,是不是你的结构没处理好?
Radar2006 2006-04-27
  • 打赏
  • 举报
回复
还是页面刷新的问题啊,学习……
自然框架 2006-04-27
  • 打赏
  • 举报
回复
http://community.csdn.net/Expert/TopicView3.asp?id=4616896

看看这个就知道原因了。

慢的原因是这个:

<%# DataBinder.Eval(Container, "DataItem.CityID")%>

无论是什么控件,只要用这种方法就会慢很多,

帖子里有解决方法。
  • 打赏
  • 举报
回复
你可以到msdn上看看repeater速度最快,其次是datalist 最后是datagrid
datalist、datagrid都是基于datatable模型的,用起来方便但是以牺牲性能为代价

datagrid如果你用它来分页,数据量大的话,你就要写好存储过程,优化好了,真样他的速度快些。

repeater是不支持那么多模板的,好多还要手写html,但是控制起来很灵活,要是分页的话就没有datagrid方便了
所以这三个控件,要看你用在什么情况下。
nayc 2006-04-26
  • 打赏
  • 举报
回复
懒人用datagrid
repeater全由HTML组成,简单快速
lxtf214 2006-04-26
  • 打赏
  • 举报
回复
好想是出现页面刷新呢!
分析两者生成的代码是否有所不同?这个怎讲啊

hchxxzx 2006-04-26
  • 打赏
  • 举报
回复
按理说不应该出现这种情况.
你可分析一下
1.慢的情况下是否有出现页面刷新?
2.分析两者生成的代码是否有所不同?
3.重新启动你的机器.
lxtf214 2006-04-26
  • 打赏
  • 举报
回复
是啊,我用的就是DataView,我的意思是为什么 [我在datagrid的属性生成器中清除了 在“在运行时自动创建单选框”,我手动添加项,速度慢;但当我当我选中“在运行时自动创建单选框”时,就好了]

mextb1860 2006-04-26
  • 打赏
  • 举报
回复
用DataView吧
lxtf214 2006-04-26
  • 打赏
  • 举报
回复
I hope so!
loveme4180 2006-04-26
  • 打赏
  • 举报
回复
可以考虑使用repeater控件,repeater相对datagrid\datalist要快多了
lxtf214 2006-04-26
  • 打赏
  • 举报
回复
我帮定的是一个datatable ,表有21列,但实际上我查询是只用10列左右,现在数据库除了个主键,什么都没有!
hccl 2006-04-26
  • 打赏
  • 举报
回复
不知道你绑定的datagrid的数据源是什么?
用datareader快一点,如果你的数据量很大的话。
其次,你还要调整你的数据库,增加索引字段可以很好的解决大容量查询的问题!
lxtf214 2006-04-26
  • 打赏
  • 举报
回复
你是说 叫我自己创建模板列吗?然后添加到datagrid吗?
fellowcheng 2006-04-26
  • 打赏
  • 举报
回复
自己创建好
lxtf214 2006-04-26
  • 打赏
  • 举报
回复
是啊,可我感觉不是那问题,我去掉模板列还是那样!
主要是“在运行时自动创建单选框”影响太大了。
viena 2006-04-26
  • 打赏
  • 举报
回复
不懂~
sportdog 2006-04-26
  • 打赏
  • 举报
回复
你的模版列是否老是读数据库?
lxtf214 2006-04-26
  • 打赏
  • 举报
回复
终于弄明白了我的页面上服务器控键过多,严重影响速度!
加载更多回复(1)
姓 名: 周方勇 网 名: 长江支流/咏方舟 Email: flygoldfish@sina.com.cn Blog: http://blog.csdn.net/flygoldfish 2004年04月18日 1、在网友的热心支持下免费提供空间和域名 www.webmis.com.cn 2004年04月07日 发布不带.dll的源码供交流 2005年01月24日 1、提供VB.NET及C#的使用示例工程 2、发布V2.2测试版 2005年01月22日 将打印示例程序按功能(简单打印、完整示例、Excel打印)分在不同的窗口 2005年01月14日 发布《MIS金质打印通》 V2.1测试版 2004年01月13日 1、将MisPrinter类改为MisGoldPrinter,以促进品牌效应。 2、在MisGoldPrinter类中再增加一个带参构造函数,以便直接默认横向打印/预览 3、增加DocumentName属性,以便在打印/预览时在窗口标题栏中显示指定的名称 2004年01月07日 调整打印程序内部结构,为使发出去的后期源程序版本一致,待近期调整完结构之后公布源码! 这就是继V1.1之后没有发源代码的原因。 ____________________________________________________ 2004年7月 完成了整体的框架、涉及打印的几个对话框、核心打印程序及几个基本打印对象并由BillPrinter类将其组织起来,程序基本定型。 本程序为通用打印程序,单据、会计凭证、发票清单、报表、任意复杂表格、合并表格如工矿企业合同都可以由系统提供的几个默 认打印对象组合打印。 DataGrid、DataTable、MSHFlexGrid等二维形式全部可以打印。 部分对象如PrinterMargins、Sewing、GridLineFlag、GridMergeFlag等提供图例,以促进理解。 后期版本将提供XML描述、SQL数据源的打印,并用管理器管理任意多个网格、文本对象、图象等,用户可以随意定义。 2004年8月初 为一些类或程序写上注释,如下: /// 程序提供:周方勇;Email:flygoldfish@sina.com。 /// 请 关 注:WebMIS.Net快速开发工具,不写一行程序开发B/S架构下MIS、OA、CRM、人事管理、档案管理等数据库网页系统。简单、实用、稳定、可靠。 /// 下 载: /// 上海奥联:WWW.AlinkSoft.COM /// 用友华表:WWW.CellSoft.CC ///★★★★★您可以免费使用此程序,但是请您保留此说明,以维护知识产权★★★★★ 2004年08月07日 1、将框架作了部分调整,并且将打印基本对象的基类Printer作了调整。 由于打印对象的定位及打印区域受PrintDocument、Sewing影响,为了方便Printer的子类不必在每次实例化后设置这 两个对象,故将PrintDocument、Sewing放在一个类中作为全局静态变量,现删除这两个全局静态变量, 改在Printer 的构造函数中,为每个子类提供一个默认的PrintDocument、Sewing实例对象。 2、为GridBase扩充了几个属性与方法,由于字段太多,每次增加或修改字段后要去构造函数中去修改他们的初始化, 太麻烦了,所以将它们的初始化直接放在定义处,并把相应的属性及相关方法直接放在字段后,并用#region指令将 它们折叠起来,便于维护。 3、增加了ReDimArrString(string[,] arrStr,int rows,int cols),即重定义二维字符数组,因为网格的行列数可能要改 变,但不能因为它们改变了而丢失原有的数据,因此写此程序保留新定义的行列,但保留和原有行列数相交的部分数据。 4、应用设计模式原理重新组织IPrinterPageSetting、PrinterPageSetting、WinPrinterPageSetting、WebPrinterPageSetting。 WebPrinterPageSetting待进一步完善。 2004年08月08日 1、将以往程序优化 2、将DrawGrid类中DrawGridLine(...)、DrawGridText(...)、DrawGridBorder(...)参数最全的核心函数改为protected,提供public的 无参方法供实例化对象调用; 由于在指定的区域内可能绘制不完网格,因此上面的几个函数可能会将返回类型void改为一个描述绘制结果的对象; SetText(int row,int col,string text)、SetText(int row,int col)将在后期版本中提供.Row[index].Text的属性; TransGrid()、ResetTransGrid()是在设计时为了能做任意的缩放的变换提供的,待进一步完善。 3、对Printer类中的ReSetVariableVal()、GetPrinterMargins()进行修改,以适应对纸张进行调整特别是横向、竖向打印的支持。 2004年08月09日 1、解决分页问题,主要是有些对象每页都重复打印,使得条件复杂。 2004年08月10日 1、13:42将源程序传给资深程序员李峰; 2、计划增加每页小计。 2004年08月11日 1、为网格增加画对角线的功能,以满足中国人表格的特点; 2、将Graphics、PrintDocument、Sewing、RectangleF、Height、Draw()重新组织在IDraw里,并在 BillPrinter中增加private void OutObject(IDraw outer),使每个对象输出时调用此方法,提高代码重用率; 2004年08月14日 1、忘了,反正又把程序看了看,修修补补做了些调整。 2004年08月15日 1、将分页又重新简化了一下,主要是打印Body上用了数据行指针; 2004年08月16日 1、发布V1.0源码版,程序名称为MIS金质打印王。 2、在CSDN上发布贴子: .^^.开源:C#.NET开发的MIS打印程序,各种网格如DataGrid打印、DataTable、HtmlTable等二维形式全搞定,源码免费下载 http://community.csdn.net/Expert/topic/3278/3278050.xml?temp=.5012934 2004年08月17日 1、在CSDN上发布文章: 开源:.NET环境下有关打印页面设置、打印机设置、打印预览对话框的实现 http://blog.csdn.net/flygoldfish/archive/2004/08/17/77208.aspx 2、应广大网友来信要求,计划将PrinterPageSetting目录开源到演示程序,以后逐一以文章的形式全部开放。 2004年08月18日 1、中国共享软件网收录 MIS金质打印王 V1.0源码版 http://www.shareware.cn/pub/2319.html 2、将PrinterPageSetting目录即(页面设置、打印机设置、打印预览)源码加入演示程序。 3、在MisGoldPrinter中添加属性,DataSource,这样,仅需几句话就可以打印了,如: MisGoldPrinter webmis = new MisGoldPrinter(); //申明并实例化打印组件 webmis.Title = "WebMIS.Net快速开发工具\nWWW.AlinkSoft.COM"; //网格标题 webmis.DataSource = this.dataGrid1; //DataGrid作为数据源 webmis.Preview(); //打印预览 注意:将将MisGoldPrinter中的Draw(Graphics g)打印各个对象时加一下 printerobject != null的判断,如 if (mCurrentPageIndex == 1 || _caption.IsDrawAllPage)... 改为 if (_caption != null && (mCurrentPageIndex == 1 || _caption.IsDrawAllPage))... 否则可能会出错。 4、将3的应用加到了frmPrint.cs ,做一个简单的打印。 2004年08月19日 1、将PrinterPageSetting目录即(页面设置、打印机设置、打印预览)源码加入演示程序。 2、发布V1.1源码版,程序名称为MIS金质打印王。 2004年09月03日 1、由于在CSDN上发表文档".NET环境下有关打印页面设置、打印机设置、打印预览对话框的实现", 因此将PrinterPageSetting封装成一个.dll,分别用C#与VB.net写了使用示例工程程序 2、在IPrinterPageSetting.cs增加event PrintPageDelegate PrintPage,并将原PrintPage改为PrintPageValue /// C#调用: /// PrinterPageSetting1.PrintPageValue = new PrintPageDelegate(this.PrintPageEventHandler); ///或 PrinterPageSetting1.PrintPage += new PrintPageDelegate(this.PrintPageEventHandler); /// VB调用: /// Me.printerPageSetting.PrintPageValue = New GoldPrinter.PrintPageDelegate(AddressOf printDocument_PrintPage) 3、增加了DrawText类,用以打印文档(其实可以用一行一列的DrawGrid打印) 4、PrinterPageSetting的readme.txt如下: ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ 声明: 1、版权归周方勇所有,如需传播,请保留完整的内容及此声明,以维护知识产权! 2、您可以使用本程序中的任何部分作为学习或商业用途,但是需要保留相关程序的注释。 3、最新版本下载:http://www.alinksoft.com 4、免费源码 5、本人不承担任何责任。 周方勇;Email:flygoldfish@sina.com。 ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ 本程序带C#与VB.net版本使用方式,用VS.net打开PrinterPageSetting.sln, 在您喜欢的语言项目上单击鼠标右键,在弹出的菜单中选择"设为启动项目",然后运行。 5、准备独立发布PrinterPageSetting 2004年09月04日 重大喜讯:收到中国共享软件注册中心2004年09月03日的邮件。部分内容如下: 软件名称:MISGoldPrinter免费C#.NET源码版(5块钱给softreg吧) 注册价格:5元/套 您的软件在本站的编号是: /535AC7A1-9985-4314-A52C-978BB9C0BB29/ 软件注册页绝对链接: http://www.softreg.com.cn/shareware_view.asp?id=/535AC7A1-9985-4314-A52C-978BB9C0BB29/ 快捷链接: http://www.softreg.com.cn/shareware.asp?id=17260 2004年10月...日 改变PrintDocument的DefaultPageSettings就会改变PrinterMargins。由于是打印基类,继承者博多,因此 每次实例化时都会计算PrinterMargins会影响效率,这就是前些版本速度慢的原因。改为手动调用CalculatePageInfo()或改变 PrintDocument后在调用处重新计算一个PrinterMargins保存起来,因此增加PrinterSingleton, 使系统只有同一个PrintDocument及PrinterMargins,这样速度大大改观。 开发Excel打印功能 2004年11月20日 开发Excel打印功能完成,能够生成Excel文件、Excel打印预览、Excel操作。 自定制模板打印,非常灵活。完成各种打印、套打、报表、图表分析。 2004年11月23日 发布MIS金质打印王 V2.0测试版。如需要源码,下载V1.1即可。 V2.0源码版在预计在12月上旬推出。 2004年11月27日 改正预览时显示正确,在预览窗口单击打印时打印不出Body的错误。 其实只要在PrintPageEventHandler()中打印或预览重置当前页及当前行 this.mCurrentPageIndex = 1; this.mCurrentRowIndex = 0; 2004年12月...日 1、调整打印程序内部结构,公开部分程序基本没动,只作相应的错误更正及加几个属性。 2、PrinterBase不再包含装订线Sewing,打印对象的定位及打印区域只受PrintDocument的影响, 3、由于使用PrinterSingleton使系统只有同一个PrintDocument及PrinterMargins,因此在同一系统 两个地方使用时出现了打印一样的效果,如A处有header而B处没有,先打A再打B,结果B中也有header了, 于是在PrinterSingleton增加Reset()方法以使PrintDocument及PrinterMargins为null,在MisPrinter 构造函数中首先调用Reset()
首页 更新历史 在线演示 下载 帮助文档 常见问题 代码工具 分页资源 客户站点 留言簿 .Net资源 登录 注册 AspNetPager分页控件 分页是Web应用程序中最常用到的功能之一,在ASP.NET中,虽然自带了一个可以分页的DataGrid(asp.net 1.1)和GridView(asp.net 2.0)控件,但其分页功能并不尽如人意,如可定制性差、无法通过Url实现分页功能等,而且有时候我们需要对DataList和Repeater甚至自定义数据绑定控件进行分页,手工编写分页代码不但技术难度大、任务繁琐而且代码重用率极低,因此分页已成为许多ASP.NET程序员最头疼的问题之一。 AspNetPager针对ASP.NET分页控件的不足,提出了与众不同的解决asp.net中分页问题的方案,即将分页导航功能与数据显示功能完全独立开来,由用户自己控制数据的获取及显示方式,因此可以被灵活地应用于任何需要实现分页导航功能的地方,如为GridView、DataList以及Repeater等数据绑定控件实现分页、呈现自定义的分页数据以及制作图片浏览程序等,因为AspNetPager控件和数据是独立的,因此要分页的数据可以来自任何数据源,如SQL Server、Oracle、Access、mysql、DB2等数据库以及XML文件、内存数据或缓存中的数据、文件系统等等。 AspNetPager 7.1 版发布(2008-7-20) 新增 LayoutType 属性,该值是 LayoutType 枚举Table或Div,默认值是Div,即使用div布局,若设为Table则使用表格布局方式; 新增 UrlPageSizeName 属性,可以通过在url参数中指定PageSize属性的值,该UrlPageSizeName属性值若为空或负数忽略,否则PageSize属性将返回从Url中获取的UrlPageSizeName 参数的值; 新增SubmitButtonImageUrl属性,支持使用图片按钮,当该属性的值不为空时,分页控件使用该属性的值做为图片按钮路径,如果该值为空或默认值则时使用普通按钮; 修正了设计时支持中设置页索引文本或下拉框选项时,在页索引文本或下拉框显示方式中选择“自动”时属性被设置为Always而非Auto的错误; 解决了设计时EnableUrlRewriting 为true 时 UrlRewritePattern属性出错的出错问题; 代码精简及其它优化; 上一版本中标记为已废弃的如下属性:ShowInputBox、InputBoxClass、InputBoxStyle、TextBeforeInputBox、TextAfterInputBox 已去掉,新版本中已不存在这些属性,升级时请注意; AspNetPager 7.0.2 版发布(2008-1-26) 所有属性除CloneFrom外都支持使用皮肤Scheme主题(7.0.1版中大部分都不支持)。 修正了在居中当前页索引按钮的情况下(CenterCurrentPageButton=true),总页数小于数字页索引按钮数(即:PageCount小于NumericButtonCount的值)时出现负页数的bug。 新增属性CurrentPageButtonTextFormatString,可以获取或设置当前页数字页索引文本的显示格式,感谢网友asuka08的建议! 新增属性UrlPagingTarget,可以获取或设置Url分页方式下分页按钮或超链接指向的目标窗口或框架的名称。 当使用下拉框显示页索引时(即PageIndexBoxType=DropDownList时),如果总页数超过80页,将在下拉框中只列出部分页索引而不是全部页索引,以防页数太多导致下拉框选项太多而拖慢页面下载和打开速度。页索引下拉框的页索引选取规则是:当前页小于或等于15页时,显示前15页及最后5页;当前页索引大于总页数-14页时,显示前5页和最后15页;否则显示前5页、从当前页索引前5页到后5页的十一页以及最后5页。如果您有更好的下拉框页索引选取规则,请留言或发邮件联系我,我会及时更新。谢谢!

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧