【发布时间】:2009-11-08 01:03:35
【问题描述】:
第一种方式使用java脚本
或
第二种方式在asp.net sqldatasourse中使用Data source
在将数据加载到网页时压力更小
【问题讨论】:
-
谁说不能使用 javascript 从 SQLDataSource 中检索信息?
标签: asp.net javascript data-binding datagridview
第一种方式使用java脚本
或
第二种方式在asp.net sqldatasourse中使用Data source
在将数据加载到网页时压力更小
【问题讨论】:
标签: asp.net javascript data-binding datagridview
将 10000 条记录绑定到网页中是一个可怕的想法。明智的解决方案是分页;即它们显示数据的子集,然后让用户在其中向上/向下翻页。
【讨论】:
回应sikender的评论
是的..我知道分页在那里...但是它用于查看...数据..在页面模式下..但我想将这种类型的数据与datagrid..通过使用哪种方法绑定。告诉我哪种方法..我提到了两种方法..上面..哪个更好以及如何..告诉我..请
异步 javascript 调用可能压力较小,因为客户端将能够看到页面部分加载及其数据。
【讨论】:
您可能希望对数据进行分页,具体取决于您的操作方式,您可以使用 javascript 或 .net sqldatasource 两种方式。
如果您不担心用户拥有 javascript 功能,我会使用 javascript 加载数据以获得更好的用户体验。
这是一个关于如何使用 ajax:Grid 来分页数据而无需回发的示例。
http://dotnetslackers.com/articles/ajax/ASPNETAjaxGridAndPager.aspx
【讨论】:
为什么要使用 javascript 方法绑定你的数据网格?
为什么不使用数据表?
//一些代码sn-p
例如
datatable myDt = getTheDataSourceFromDatabase();
if(myDt != null && myDt.rows.count > 0)
{
myDatagrid.datasource = myDt;
myDatagrid.databind();
}
如果您需要异步响应,请使用更新面板。
使用javascript方法有很多陷阱
a) 客户端可以禁用浏览器的 JavaScript
b) Sql 注入,因为您不能在通过 javascript 访问时使用存储过程,除非您使用 native ajax 等来列出一些
因此,繁重的数据库操作在服务器端完成。
否则最好进行分页..您不必一次从数据库中取出所有记录。编写一个存储过程,它将接受开始和结束页限制并获取记录(use row_number() function)。或者,使用LINQ 执行相同操作(via Take & Skip)
【讨论】: