关于gridview内使用模板列创建主数据的问题

bxf120211 2008-12-16 01:56:47
我正在做利用模板列创建数据,当增加新数据的时候,用户可以在footer内填写相应的数据、包括数据里面的工厂、科室等等信息,其中工厂、科室用dropdownlist显示,我每次创建完一条数据的时候,总是利用
protected void GVuser_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.Footer)
{
BindDDLcorp(ddlcorp);
ddlwork.DataSource = null;
ddlwork.DataBind();
ddlwork.Items.Insert(0,"所属分厂");

进行加载,我后面还加载了其他的一些数据,这样一来页面刷新就会很慢,因为每次都需要加载这些分厂、科室等等信息,

我的问题是如何减少加载的时间。
...全文
91 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
bxf120212 2009-01-12
  • 打赏
  • 举报
回复
十分感谢你的回复,刚看见,还没来得及调试,那也给分。
pt1314917 2008-12-19
  • 打赏
  • 举报
回复
把一些变动比较少的基础数据给缓存起来。这样可以提高很大一部分速度``
  • 打赏
  • 举报
回复
在page_Load中绑定数据,几年前我们不太懂asp.net1.1编程,并且资料比较少,我们写了不少这类程序。没想到几年之后还有这么多人这样编程。如果果真那样仍然使用asp.net1.1的机制来编程(而不是使用asp.net2.0的数据源控件来编程),也应该纠正为将数据库绑定放到Page_PreRender中的正确的流程,并且在页面上控件造成回发时根本不应该多余地绑定数据(而GridView中已经绑定过的控件,包括DropdownList等自己会管理状态所以也并不会出错)。
  • 打赏
  • 举报
回复
所以,看到那种在page_load中绑定数据源的程序,因为编程思想差别太大,我一般就不去进一步考虑那样的程序应该怎样解决bug了。现在我自己的程序中没有一个是在page_load中绑定数据源的。
  • 打赏
  • 举报
回复
不知道你的 BindDDLcorp(ddlcorp) 中是怎样写的。对于经常读取数据库的操作,应该在整个网站上仅第一次读取,以后就从Cache数据缓存中读取。为Cache设置数据库依赖,可以在数据库相关的表数据修改时刷新缓存。同时也可以在你的程序中当更新数据库是直接删除这个Cache或者它所依赖的Cache,下一次读取时就自动刷新了。可以参考帖子《依赖sql的缓存,刷新滞后问题》。


但是还有更为普遍的问题:

许多bug与“Page_Load绑定数据”这个著名的设计错误有关。你可以使用一个数据源控件来管理数据(例如实验Scott Mitchell的asp.net2.0数据编程教程中的任何一个例子),在读取后台数据的BLL程序的第一行设置一个断点,然后在页面上放置一个button按钮测试一下回发,你会发现点击这个button时并不会读取后台数据库。

就算你换页或者选择一行或者编辑一行等等,如果你在Page_PreRender处设置一个断点,你可以看到是在Page_PreRender之后才绑定数据的。也就是说不论什么时候都是在Page_PreRender完成之后才绑定数据的。


你的程序,如果你在页面上放置一个button作为回发测试,我可以很确定地告诉你,写的正确的程序在回发时不但不会去绑定GridView,而且也绝对不会去绑定DropdownList!
mengxj85 2008-12-19
  • 打赏
  • 举报
回复
我的问题是如何减少加载的时间。
----------
在Page_load中
或者将数据源保存在后台,直接绑定
ToooooddZhao 2008-12-19
  • 打赏
  • 举报
回复
关注ing
criedshy 2008-12-16
  • 打赏
  • 举报
回复
你放在footer里操作,这就没办法了,因为你添加后要重新绑定GridView,就不可避免的触发RowDataBound事件


sprc_lcl 2008-12-16
  • 打赏
  • 举报
回复
写个类静态保存这些表值,如:

private static DataTable _dtFac = null;
public static DataTable dtFac
{
get
{
if (_dtFac == null)
{
_dtFac=?????;
}
return _dtFac;
}
}

62,254

社区成员

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

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

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

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