社区
C#
帖子详情
外网访问 DataGrid 翻页很慢
xzg1109
2008-11-19 08:43:31
本人用DataGrid绑定数据,每页30条记录。有90页记录。数据库为Oracle10g.
内网访问很快。可是外网访问就很慢了,每翻一页大概要1分20秒。请问这种情况,有什么解决方法没有?拜谢!拜谢!
...全文
129
15
打赏
收藏
外网访问 DataGrid 翻页很慢
本人用DataGrid绑定数据,每页30条记录。有90页记录。数据库为Oracle10g. 内网访问很快。可是外网访问就很慢了,每翻一页大概要1分20秒。请问这种情况,有什么解决方法没有?拜谢!拜谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wangping_li
2008-11-19
打赏
举报
回复
[Quote=引用楼主 xzg1109 的帖子:]
本人用DataGrid绑定数据,
每页30条记录。有90页记录
。数据库为Oracle10g.
内网访问很快。可是外网访问就很慢了,
每翻一页大概要1分20秒
。请问这种情况,有什么解决方法没有?拜谢!拜谢!
[/Quote]
照这样来看不可能是分页问题
哪怕你用它自带的分页也不可能这么慢的,估计是带宽的问题
易企加_天马行空
2008-11-19
打赏
举报
回复
建议你每次回传都去查数据吧,不要放到viewstate里去。
xzg1109
2008-11-19
打赏
举报
回复
[Quote=引用 12 楼 tmxk2002 的回复:]
引用 9 楼 xzg1109 的回复:
引用 7 楼 tmxk2002 的回复:
呵呵,不是分页的问题
你把你的页面右击选择属性,看看你的页面有多大?
你外网的带宽是多是,应该是页面太大,网络带宽不宽导致的。
是这个原因,所以不能用DataGrid本身的分页功能了。
天啦,你是不是把数据源放到viewstate保存到页面上了?????
如果这样你干嘛不每次去查下数据库而不要保存数据,这样还快些。
[/Quote]
是ViewState闹的。谢谢!
易企加_天马行空
2008-11-19
打赏
举报
回复
[Quote=引用 9 楼 xzg1109 的回复:]
引用 7 楼 tmxk2002 的回复:
呵呵,不是分页的问题
你把你的页面右击选择属性,看看你的页面有多大?
你外网的带宽是多是,应该是页面太大,网络带宽不宽导致的。
是这个原因,所以不能用DataGrid本身的分页功能了。
[/Quote]
天啦,你是不是把数据源放到viewstate保存到页面上了?????
如果这样你干嘛不每次去查下数据库而不要保存数据,这样还快些。
xzg1109
2008-11-19
打赏
举报
回复
[Quote=引用 4 楼 qinhl99 的回复:]
请参考:
private void Page_Load(object sender, System.EventArgs e)
{
//页面初试化时进行数据绑定
if(!IsPostBack)
DataListDataBind();
}
private void DataListDataBind()
{
//定义数据连接对象,其中数据库连接字符串是在Web.Config文件中定义的
SqlConnection conn = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionSqlServer"].ToString());
//创建数据适配器对象
SqlDataAd…
[/Quote]
我试一下。加四个按钮也可以。能解决立马结帖!
qinhl99
2008-11-19
打赏
举报
回复
90页数据,都是要下载到本地的,所以慢!
xzg1109
2008-11-19
打赏
举报
回复
[Quote=引用 7 楼 tmxk2002 的回复:]
呵呵,不是分页的问题
你把你的页面右击选择属性,看看你的页面有多大?
你外网的带宽是多是,应该是页面太大,网络带宽不宽导致的。
[/Quote]
是这个原因,所以不能用DataGrid本身的分页功能了。
xzg1109
2008-11-19
打赏
举报
回复
[Quote=引用 4 楼 qinhl99 的回复:]
请参考:
private void Page_Load(object sender, System.EventArgs e)
{
//页面初试化时进行数据绑定
if(!IsPostBack)
DataListDataBind();
}
private void DataListDataBind()
{
//定义数据连接对象,其中数据库连接字符串是在Web.Config文件中定义的
SqlConnection conn = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionSqlServer"].ToString());
//创建数据适配器对象
SqlDataAd…
[/Quote]
这样是不是就不能用DataGrid本身的分页功能了。
易企加_天马行空
2008-11-19
打赏
举报
回复
呵呵,不是分页的问题
你把你的页面右击选择属性,看看你的页面有多大?
你外网的带宽是多是,应该是页面太大,网络带宽不宽导致的。
warrior
2008-11-19
打赏
举报
回复
内网快外网慢,是不是网速影响啊?
可能影响速度的有几个方面:
1.客户端处理速度
2.数据库查询速度
3.网络传输速度
1,2都不会导致内外网差别,那只有3了。
分析一下每次翻页时从数据库传输的数据量有多大,看能不能进一步优化。如果数据量不算大,而网速又不能改进,就只能采取后台预读等方法,在用户浏览的同时通过后台线程不断地从数据库取后续的数据。
怫悰
2008-11-19
打赏
举报
回复
冒泡帮顶接分
这个和网站本身有关系?mark学习
qinhl99
2008-11-19
打赏
举报
回复
请参考:
private void Page_Load(object sender, System.EventArgs e)
{
//页面初试化时进行数据绑定
if(!IsPostBack)
DataListDataBind();
}
private void DataListDataBind()
{
//定义数据连接对象,其中数据库连接字符串是在Web.Config文件中定义的
SqlConnection conn = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionSqlServer"].ToString());
//创建数据适配器对象
SqlDataAdapter da = new SqlDataAdapter("select EmployeeID,LastName,FirstName,Title,TitleOfCourtesy from Employees",conn);
//创建DataSet对象
DataSet ds = new DataSet();
try
{
//填充数据集
da.Fill(ds,"testTable");
//创建分页类
PagedDataSource objPage = new PagedDataSource();
//设置数据源
objPage.DataSource = ds.Tables["testTable"].DefaultView;
//允许分页
objPage.AllowPaging = true;
//设置每页显示的项数
objPage.PageSize = 5;
//定义变量用来保存当前页索引
int CurPage;
//判断是否具有页面跳转的请求
if (Request.QueryString["Page"] != null)
CurPage=Convert.ToInt32(Request.QueryString["Page"]);
else
CurPage=1;
//设置当前页的索引
objPage.CurrentPageIndex = CurPage-1;
//显示状态信息
lblCurPage.Text = "当前页:第" + CurPage.ToString()+"页";
//如果当前页面不是首页
if (!objPage.IsFirstPage)
//定义"上一页"超级链接的URL为:当前执行页面的虚拟路径,并传递下一页面的索引值
lnkPrev.NavigateUrl=Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurPage-1);
//如果当前页面不是最后一页
if (!objPage.IsLastPage)
//定义"下一页"超级链接的URL为:当前执行页面的虚拟路径,并传递下一页面的索引值
lnkNext.NavigateUrl=Request.CurrentExecutionFilePath+ "?Page=" + Convert.ToString(CurPage+1);
//进行数据绑定
dlPager.DataSource = objPage;
dlPager.DataBind();
}
catch(Exception error)
{
//输出异常信息
Response.Write(error.ToString());
}
}
qinhl99
2008-11-19
打赏
举报
回复
可以的
xzg1109
2008-11-19
打赏
举报
回复
[Quote=引用 1 楼 qinhl99 的回复:]
分页啊,不要用内存分页
[/Quote]
用要SQL语句能不能做到分页,如果这样的话,是不是要加上一面,下一页,首页,末页 四个按钮啊
qinhl99
2008-11-19
打赏
举报
回复
分页啊,不要用内存分页
WEB开发文档2 总结
转自:http://blog.donews.com/lvjiyong/archive/2006/06/29/931071.aspx怎样将后台生成的在内存中的图象显示到客户端Microsoft IE WebControls下载地址如何在
DATAGRID
中使用JAVASCRIPT脚本控制
DataGrid
中连接到下一页显示数据下载中文名文件时保存文件名乱码问题关于用ASP.net绘图的问题,请大虾指教那
C#面试题
本人在深圳面试十来家,发现百分之八十的题目都是来之于以下题目,今天分享给大家,好好背吧. 1、@page指令只能在_aspx___文件(填写扩展名)中使用,而@Control指令只能用在_ascx___文件(填写扩展名)中使用. 2、说明控件
DataGrid
,DataTable,DataView,DetailsView,formView,Repeator常用属性,如果要想把一条记录分成两列显示...
.NET面试题精简版
1、@page指令只能在_aspx___文件(填写扩展名)中使用,而@Control指令只能用在_ascx___文件(填写扩展名)中使用. 2、说明控件
DataGrid
,DataTable,DataView,DetailsView,formView,Repeator常用属性,如果要想把一条记录分成两列显示,以上控件哪些可以用,哪些不可以用?如果可用,如何处理? 答:DataMember:绑定的表或者视图,DataSourseID:数据源控制的ID,Visible:是否显示该控件. FormView,Repe
.net绝版面试题
本人在深圳面试十来家,发现百分之八十的题目都是来之于以下题目,今天分享给大家,好好背吧.1、@page指令只能在_aspx___文件(填写扩展名)中使用,而@Control指令只能用在_ascx___文件(填写扩展名)中使用.2、说明控件
DataGrid
,DataTable,DataView,DetailsView,formView,Repeator常用属性,如果要想把一条记录分成两列显示
DevExpress GridControl控件分页功能深度解析与实战实现
默认英文提示显得不够本土化,改掉它!gridView.OptionsPagination.InfoTextFormat = "第 {0} 页,共 {1} 页";支持扩展字段{2}显示总记录数:gridView.OptionsPagination.InfoTextFormat = "第{0}页,共{1}页 ({2}条记录)";结合资源文件实现多语言切换:// 来自 .resx特性说明统一外观所有项目风格一致快速集成新项目引用即用集中维护。
C#
111,131
社区成员
642,542
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章